Nachdem nun die Client und Serversoftware installiert ist richten wir uns auf unserem Client einen Ordner ein – dort soll die Working-Copy des Repository „test“ angelegt werden:
Rechte Maustaste neuen Ordner anlegen und irgendwie benennen. Dann Rechte Maustaste, „SVN Auschecken…“ anwählen. Als Pfad (URL) geben wir nun „svn://192.168.2.100/test“ an – also die IP-Adresse des Rechners auf dem der Subversion-Server läuft. Die restlichen Einstellungen kann man beibehalten.
Sollte die Verbindung nicht funktionieren: Sicherstellen das auf dem Server auch der SVNService läuft (Einstellungen, Systemsteuerung, Verwaltung, Dienste) – am besten Starttyp auf automatisch stellen.
Nun können wir in dem leeren Ordner unser Projekt anlegen (Quelltexte reinlegen und bearbeiten). Mit der rechten Maustaste kann nun jederzeit der Quelltext auf den SVN-Server übertragen werden – dabei wird er versioniert (Revision) und falls zwei Benutzer gleichzeitig eine Datei auf den Server laden (Checkin, Commit) ist das kein Problem – der Konflikt wird wie bei CVS auch erkannt und wenn möglich automatisch gelöst (Merge). Der Team-Arbeit an einem Projekt steht also nichts im Weg. Der große Vorteil gegenüber CVS ist hierbei die Atomarität (Alles oder nichts) – stürzt der PC während eines Commits ab passiert nichts – unter CVS wäre u.U. nur die Hälfte des Projektes eingecheckt und man hätte ein inkonsistentes Repository auf dem Server. Außerdem versioniert SVN Ordner und nicht wie CVS nur Dateien. Das Verschieben und Umbenennen ist also kein großes Problem mehr.
Kleine Arbeitsanleitung:1. Dateien / Ordner neu anlegen
Eine Datei kann man wie gewohnt neu in der Working-Copy anlegen oder reinkopieren. Danach wird die Datei automatisch mit einem ? markiert. Rechte Maustaste – TortoiseSVN – (+) Hinzufügen und schon sind die Dateien unter der Versionierungskontrolle. Sobald man eincheckt (=SVN Übertragen) landen Sie auch auf dem Server und stehen damit sofort den anderen Mitentwicklern zur Verfügung.
2. Dateien ändern
Ändert sich eine Datei lokal inhaltlich, so wird die Datei mit einem markiert. Beim Einchecken (=SVN Übertragen) wird nun geprüft ob die Datei auf dem Server zwischenzeitlich auch von einem anderen Programmierer aktuallisiert wurde – wenn nein landet die Version ohne Mucken auf dem Server und die Revisionsnummer steigt um +1. Wenn ja meldet Tortoise einen Konflikt: Dann muss man zu erst seine lokale Kopie Aktuallisieren – die Änderungen auf dem Server werden hierbei mit den lokalen Änderungen gemergt (was oft automatisch geht). Danach kann man einchecken (Konflikt behoben).
3. Ordner / Dateien löschen
Das darf man nicht wie gewohnt über den Papierkorb erledigen. Am besten gleich angewöhnen die Dateien über TortoiseSVN zu löschen (-) Symbol und anschliessend einzuchecken – dann sind die Dateien auch im Repository auf dem Server gelöscht. Aber keine Angst: Das ist nur in der aktuellen Revision dann so – man kann (und das ist ja der Sinn von einem Versionierungstool wie CVS oder Subversion) die gelöschten Dateien ebenso wie ältere Versionen jederzeit wieder herstellen (dazu später mehr).
4. Einchecken = Commit = Übertragen
Bei jedem Einchecken frägt der Client (außer bei Password-Remember) nach dem Passwort des Users – jede Quelltextänderung wird Buchstaben/Zeilengenau mit einem Programmierer in Verbindung gebracht (History-Funktion). Wichtig ist auch eine Log-Meldung einzugeben – also ein Kommentar dessen was man da eincheckt (z.B. „Entfernen des Bugs soundso und Erweiterung der Funktionalität von dummyfunction()…“).
Anmerkung: Sollte eine Fehlermeldung kommen „Access is readonly“ oder so: Im Repository im /conf Ordner in der Datei svnserve.conf die vier Zeilen mit[general]anon-access = noneauth-access = writepassword-db = passwdauskommentieren. Ebenso in der passwd [users] auskommentieren und einen Benutzer mit Password anlegen.