Vorraussetzungen
Subversion braucht wirklich wenig voraussetzung um zu laufen. Eigentlich im einfachsten fall ein Repository und einen Benutzer mit Zugriff auf dieses. Der Zugriff auf ein Subversion Repository kann in über mehrere wege erfolgen. Die gängisten sind
- http/https über mod_dav
- SSH
- direkt über das filesystem
Ich bevorzuge den weg über Mod_dav da die meisten Leute HTTP bzw. HTTPs zugriff haben und die User keinen direkt zugriff auf den Repository server haben müssen um ein Checkout zu machen.
Um dann letzt entlich mit einer Arbeitskopie aus dem Repository arbeiten zu können benötigen wir ein Checkout dieser ist nichts anderes als ein bestimmter stand des Sourcecodes zu im Repository als copy auf dem lokalen Rechner.
Einen checkout legt man mit folgenden befehl an:
svn co https://mein.server.example.com/repository/calculator /mein/lokaler/pfad/calculator
Die Basics: Aktualisieren, Löschen, Hinzufügen
Der folgende Befehl holt alle änderungen aus dem Repository in den lokalen checkout:
cd /mein/lokaler/pfad/calculator
svn up
Ordner und Dateien Löschen:
cd /mein/lokaler/pfad/calculator
svn rm mein_Ordner
svn rm meinedatei.txt
Ganz wichtig ist, änderungen werden erst durch ein Commit in das Repository zu rück gespielt, d.h. wenn man will das ändere Entwickler die modifikationen erhalten sollen, müssen diese Commited werden, das ganze geschieht mit folgendem befehl
svn co -m "Ein Kommentar über Änderungen" /mein/lokaler/pfad/calculator
Branchen und Mergen
Ein Branch ist ein Seitenast der Hauptentwicklungslinie, da Subversion nur sogenannte "CheapCopys" kennt, ist ein Branch eigentlich nur eine Kopie eines Projekts ab einer bestimmten Revisionsnummer.
Branch anlegen
Einen Branch legen wir also Folgerichtig mit einem Copy-Befehl an z.B. so
svn --username=XYZ copy -m "Erzeuge Branch " https://mein.server.example.com/repository/calculator/trunk https://mein.server.example.com/repository/calculator/branches/t_NNNN_AAAA
Branch auf den neuesten Stand aus dem HEAD bringen: (HEAD--> BRANCH)
Wenn wir einen Branch mit den änderungen aus der Hauptentwicklungslinie updaten wollen machen wir folgendes:
cd /mein/lokaler/pfad/wo/der/calculator/branch/liegt
svn merge -r rev:HEAD https://mein.server.example.com/repository/calculator/trunk .
Anmerkung:
. ist das Verzeichnis, mit dem aktuellen Branch als Inhalt
rev# is dabei die Revisionsnummer als der Branch angelegt wurde, bzw. als er das letzte Mal mit dem HEAD gemergt wurde.
Branch mit HEAD mergen: (BRANCH --> HEAD)
Wenn ein Entwickler seine Arbeit beendet kann er/soll er seine Änderungen in die Hauptentwicklungslinie zurück führen dies geht folgender massen.
cd /mein/lokaler/pfad/wo/der/calculator/trunk/liegt
svn merge -r rev:HEAD https://mein.server.example.com/repository/calculator/branches/BRANCHNAME .
Anmerkung:
. ist das Verzeichnis , mit dem Trunk(HEAD) als Inhalt
rev# is dabei die Revisionsnummer als der Branch angelegt wurde, bzw. als er das letzte Mal mit dem HEAD gemergt wurde.
Zum Schluss
Das ganze soll wirklich nur ein kleiner einblick sein wie man mit Subversion anfängt natürlich gibt es wie gesagt einige voraussetzunge wie z.B. ein Repository, Benutzer usw. ... Wer jetzt etwas mehr wissen sollte sich aufjedenfall das
Subversion Buch anschauen.