Dies ist eine alte Version des Dokuments!
QuickLinks
Diese Seite erklärt den grundlegenden Umgang mit TortoiseSVN. Tortoise-SVN ist eine Erweiterung für den Windows Explorer und bietet eine gute Integration von SVN. Der Zugriff auf TortoiseSVN geschieht über das Kontextmenu des Windows-Explorers. Eine umfassende Dokumentation ist auf der Projektseite zu finden.
Eine lokale Arbeitskopie kann in jedem beliebigen Ordner erstellt werden: Rechtsklick auf den Ordner → SVN Checkout…. In der daraufhin erscheinenden Maske muss nur noch die URL zum Repository angegeben werden. Befindet sich das Repository auf dem NTB-SVN-Server sieht die URL z.B. so aus: https://svn.ntb.ch/svnba/RepositoryName
. Bei einem lokalen Repository z.B. so: file:///D:/work/SVN/WasAuchImmer
.
Es ist wichtig, die lokale Arbeitskopie stets aktuell zu halten. Dazu wird ein sogenanntes update durchgeführt. Dies wird wie folgt gemacht: Rechtsklick auf den obersten Ordner → SVN Update.
Hat man in der lokalen Arbeitskopie Änderungen gemacht, sollten diese regelmässig wieder ins Repository übermittelt werden. Dazu wird ein sogenannter commit durchgeführt: Rechtsklick auf den obersten Ordner → SVN Commit. Anschliessend werden alle Dateien aufgelistet, die sich vom Repository unterscheiden. Man wählt diejenigen an, welche übertragen werden sollen, gibt einen Kommentar ein und klickt auf OK.
Wenn mehere Benutzer im gleichen Repository arbeiten, kann es vorkommen, dass zwei Benutzer die gleiche Datei abändern. Da man aber nur auf einer lokalen Kopie des Repositories arbeitet, merkt man nichts davon. Einer der beiden Benutzer wird seine Änderungen als erster übermitteln (commit). Wenn der zweite Benutzer seine Änderungen übermitteln will (commit), erhält er eine Fehlermeldung (siehe Bild). Als nächstes wird man gefragt, ob die lokale Arbeitskopie aktualisiert werden soll (update).
Nach dem Update gibt es wieder eine Fehlermeldung, welche auch aufgetreten wäre, wenn zuvor kein Commit gemacht wurde. Alle betroffenen Dateien wurden mit der Version, welche im Repository liegt, vereinigt. Eine Kopie der lokalen Dateien wurde unter dem Namen *.mine erstellt.
Um den Konflikt zu lösen klickt man mit der rechten Maustaste auf die betroffene Datei und wählt → TortoiseSVN → Edit conflicts aus. Es erscheint ein Fenster mit drei Bereichen:
Nun kann mit den Pfeil-Symbolen für jede Linie gewählt werden, welche Version verwendet werden soll (Mine → Pfeil nach links oder Theirs → Pfeil nach rechts). Die vereinigten Linien sind im Merged Bereich zu sehen. Bei grossen Dateien kann mit den Pfeilen nach oben/unten zum nächsten Konflikt gesprungen werden. Im Merged Bereich können die Konflikte auch manuell gelöst werden. Nach dem alle Konflikte gelöst wurden, muss die Datei als bereinigt markiert werden, indem im Menü unter → Edit → Mark as resolved oder auf das Symbol geklickt wird. Die Änderungen können nun ganz normal übermittel werden (commit).
Mit TortoiseSVN ist es möglich lokale Repositories an einem beliebigen Ort auf dem Dateisystem zu erstellen. Diese sind jedoch nur für den Eigengebrauch geeignet und sollten nicht über ein Netzlaufwerk mit anderen gemeinsam verwendet werden. Grund für diese Einschränkung sind die fehlenden Lock-Funktionen der Windows-Dateisysteme. Dadurch kann das Repository unbrauchbar gemacht werden, wenn zwei Personen gleichzeitig einen Commit durchführen! Praktisch sind diese privaten Repositories jedoch, da man dadurch jederzeit wieder zu einer früheren Version zurückkehren kann und man die Änderungsschritte automatisch dokumentiert hat (natürlich nur wenn man die Änderungsmitteilung immer brav ausfüllt).
Ein Repository erstellen ist relativ einfach: Gewünschen Ordner aussuchen, Rechtsklick → TortoiseSVN → Create repository here. Anschliessend muss nur noch eine lokale Arbeitskopie erstellt werden.
Wird ein Projekt von mehreren Personen bearbeitet, eignet sich ein solches Repository nicht. Für eine einfach und sichere Zusammenarbeit stellt die NTB einen SVN-Server zur Verfügung.
Ändert sich die URL von einem Repository, kann kein Update/Commit mehr ausgeführt werden. Um dieses Problem zu lösen muss TortoiseSVN mitgeteilt werden, wohin das Verzeichnis verschoben wurde. Dazu gibt es die Funktion Relocate: