Subversion's beginners essentials auf der Kommandozeile

07:20PM Apr 02, 2009 in category Hello World by Alexander Pirsig

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.

Kommentare[0] Tags: merge versioning coding branch subversion

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet