SVN-Server installieren

Aus
Version vom 29. Dezember 2009, 14:08 Uhr von Pocket (Diskussion | Beiträge) (svnadmin in svnserve geändert, da dies der falsche Aufruf ist ;))

SVN (Subversion) auf der DS

Subversion ist eine Codeverwaltung, die das gemeinsame Arbeiten an gleichen Codes wesentlich vereinfacht. Subversion übernimmt hierbei das Versionsmanagement der Codes. Der Beitrag basiert auf diesem Thread im Forum von Toscman

Installation

Voraussetzungen

Pakete installieren

Wie bei ipkg Pakete üblich geht das mit dem gewohnten "Zweisatz" bei den DS

$ ipkg update
$ ipkg install svn

Konfiguration + Einrichten

  1. Einloggen mit Putty als root (wirklich Namen mit "root" angeben und Adminpasswort, Putty ist ein kleines Tool, mit dem man sich komfortabel auf die DS verbinden kann.)
  2. Wechseln ins Verzeichnis /volume1/svn (Ordner svn habe ich selber angelegt, im Ordner svn lege ich die Repositorys an, falls es mehrere werden)
  3. su %user% (user ist der entsprechende Adminbenutzer, nicht root!!! Das wechseln der Identität funktioniert nicht: Wechseln des login für einen Benutzer)
  4. svnadmin create %verzeichnis% ('verzeichnis' ist der Name deines Repos)
  5. cd %verzeichnis%/conf
  6. vi passwd
  7. testuser = testpw (hier im Klartext User und Passwort der Benutzer für dein Repos eingeben)
  8. "ESC"
  9. :wq (Sind die Eingaben im VI. Der ist gewöhnungsbedürftig)
  10. chmod 600 passwd (Das ist wichtig, da du sonst dich wahrscheinlich nicht einloggen kannst)
  11. vi svnserve.conf
  12. anon-access = none (Sorgt dafür, dass kein anderer Lese- oder sonstige Rechte hat)
  13. auth-access = write (Angemeldete User haben Schreibrechte)
  14. password-db = passwd (Verweis auf die passwd - da sind die Benutzer drin)
  15. realm = Mein Repository (Name deines Repos hier angeben, ist optional)
  16. "ESC"
  17. :wq (Speichern im VI-Editor)

Start des Servers

Einmalig (geht verloren bei reboot)

Auf Konsole aufrufen: svnserve -d -r %repos_ordner%

Start des SVN-Servers bei Systemstart

Nach dieser Anleitung vorgehen und in das eigene Bootscript obigen Code einfügen.

Einbinden des Servers auf "elegante" Weise

siehe Originaleintrag im englischen Wiki hier

Vorbemerkung

SVN ist erfahrungsgemäß recht ressourcenhungrig. Darum ist es sinnvoller den SVNserver-Daemon nicht die ganze Zeit am Laufen zu haben, sondern nur zu starten, wenn er benötigt wird. Das funktioniert under Linux/Unix mit dem inet-Daemon.

Einrichtung inet-Daemon

  1. Mit vi inetd.conf bearbeiten:
    vi /etc/inetd.conf
  2. Folgende Zeile einfügen (zwischen den Wörtern sind Tabs):
    svn stream tcp nowait %svnowner% /opt/bin/svnserve svnserve -i -r %repo_ordner%
  3. Speichern und schließen:
    : wq

Bearbeitung services- File

  1. Mit vi services bearbeiten:
    vi /etc/services
  2. z.B. am Ende folgende Zeilen einfügen (zwischen den Blöcken sind Tabs):
    svn             3690/tcp                        #Subversion
    svn             3690/udp                        #Subversion
  3. Speichern und schließen:
    : wq

Neustart

reboot

Probleme

Bei mir funktionierte der Start mittels inetd nicht auf Anhieb. Das Problem wurde anscheinend auch hier beschrieben. Es half den inet-Daemon neu zu starten:

/usr/syno/etc/rc.d/S03inetd.sh stop
/usr/syno/etc/rc.d/S03inetd.sh start

SVN auf Clienten aufrufen

Das geht am besten mit dem Programm Tortoise. Ist kostenlos im Internet erhältlich. Einfach runterladen und installieren. Anschließend kann man per Rechtsklick das Kontextmenü aufrufen und dort den Punkt "SVN Checkout" aufrufen.

Der SVN-Pfad den man eingeben muss lautet folgendermaßen:

svn://%ip_von_DS%/%repos_ordner%

Anschließend wird der Ordner an der entsprechenden Stelle erzeugt und ihr könnt damit arbeiten.

Links