Subversion per HTTP / HTTPS

Aus Joachim Schuster Wiki
Version vom 7. Juni 2010, 14:28 Uhr von Joachim (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ausführliche Anleitung siehe: http://forum.synology.com/wiki/index.php/Enable_HTTP_and_HTTPS_access_for_Subversion

Kleine Anmerkung:

Wer die Anleitung http://forum.synology.com/wiki/index.php/Step-by-step_guide_to_installing_Subversion zum Einrichten eines Subversion Dienstes auf der Synology DiskStation befolgt hat, hat einen User svnowner (o.ä.) für den Subversion Admin angelegt.

Der Webserver muss auf das Verzeichnis /volume1/svn lesend und schreibend zugreifen. Standard-User des Webservers ist nobody, sodass keine Schreibrechte für /volume1/svn gegeben sind. Um nun den Webserver, der ja in diesem Fall nur als WebDAV Server für Subversion konfiguriert ist, Zugriff auf das Verzeichnis zu gewähren, lässt man den Webserver unter dem Benutzer svnowner laufen. Dazu folgende Datei editieren:

/volume1/opt/etc/apache2/httpd.conf

Darin die Zeile mit User und Group anpassen, z.B.:

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
# 
User nobody
Group nobody

in

User svnowner
Group users

Nun läuft der Webserver mit den Rechten des Users svnowner. Somit kann er schreibend und lesend auf das Verzeichnis /volume1/svn zugreifen und die darin enthaltenen Repositories verwalten.

Der SVN-Dienst, dier in der Anleitung http://forum.synology.com/wiki/index.php/Step-by-step_guide_to_installing_Subversion eingerichtet wurde, kann damit auch wieder entfernt werden, da der Webserver unabhängig davon auf die Repositories zugreift.

Anlegen neuer Repositories

Um ein neues Repository anzulegen muss man sich auf der DS als svnowner anmelden. Dazu entweder direkt über

ssh svnowner@diskstation

oder per root Anmelden und anschließend

su svnowner

Anschließend kann man ein neues Repository anlegen:

svnadmin create test

Achtung: wenn man nicht als svnowner angemeldet ist, muss man das erstellte Verzeichnis samt unterverzeichnis diesem User zuweisen:

chown -R svnowner:users /volume1/svn/name_des_repos

Anlegen neuer Projekte

Es gibt unterschiedliche Meinungen, ob jedes Projekt auch gleich ein eigenes Repository benötigt. Generell ist es nicht nötig, da man durch Verzeichnisse sowieso noch eine Trennung erreichen kann. Kommt evtl. auch auf das Sicherheitsbedürfnis an.

Es hat sich bewährt, den Inhalt des Projekt-Verzeichnisses nicht direkt unterhalb eines Verzeichnisses im Repository zu importieren. Da man später mit branches zu tun bekommen könnte, erstellt man den Hauptzweig als Unterordner des Projektnamens im Repository. Dieser Ordner heißt dann trunk.


Beispiel für das Anlegen eines Projekts in ein bestehendes Repository:

svn import <projekt_verzeichnis> https://diskstation/svn/repository/projekt_name/trunk --message="initial import"

Entsprechend checkt man nicht auf Projektnamen-Ebene aus, sondern eins tiefer auf trunk:

svn checkout https://diskstation/svn/repository/projekt_name/trunk lokale_bezeichnung

lokale_bezeichnung kann beliebig gewählt werden, sinnvollerweise natürlich gleich dem projekt_name.