Dateien mit Tortoise SVN 1.4.5 verwalten

Hinweis

Die hier gezeigte Anleitung beschreibt die Anwendung von TortoiseSVN (Subversion Client) ohne zentralen SVN-Server. Diese Vorgehensweise empfiehlt sich nur, wenn man alleine an den zu verwaltenden Dateien arbeitet und eine Versionisierung verwenden will.

Allerdings können die Projektdateien und auch das Repository auf einem Netzwerklaufwerk liegen. Dadurch besteht die Möglichkeit von verschiedenen PCs aus auf die Projekte/das Reposirory zuzugreifen bzw. sie zentral sichern zu lassen.

In sehr begrenztem Umfang lässt sich auch mit zwei oder mehr Personen an den Dateien arbeiten. Dann sollte man sich aber bei ausgecheckten Projekten unbedingt eine Sperre dafür holen. Die anderen Personen können im Repository Browser die Sperren auf die einzelnen Dateien sehen und wissen damit, dass gerade daran gearbeitet wird. Das verhindert aber nicht, dass sich die Projekte von einer anderen Person trotzdem erneut auschecken lassen. Es fehlt halt die zentral steuernde Instanz – der SVN-Server.

Bitte darauf achten, vor dem lokalem arbeiten immer die Repositoryinformation zu aktualisieren (Rechtsklick – SVN Aktualisieren).

Installation

TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi (Client Komponente) und LanguagePack-1.4.5.10425-win32-de.exe (Deutsche Sprache) installieren. Danach den PC booten.

Auf einem Netzwerklaufwerk nun einen Ordner anlegen der die Projekt- und Änderungsinformationen speichert (_SVN_%name%_Repository) und einen Ordner, der die Projektdateien speichert (_SVN_%name%). Lokal legt man nun noch einen Ordner an, in dem „ausgecheckt“ werden kann (C:\_SVN_Sandbox).

Wenn man Projekte dauerhaft auschecken und auch offline damit arbeiten will sollte man die Ordnerstruktur des Netz-Projektordners (C:\_SVN_%name%) lokal spiegeln.

Die Batchdatei legt auch ein Beispielverzeichnis (_Vorlage) an, dass zeigt wie die Projekte jeweils organisiert sein sollten.

  • Die eigentlichen Projektdateien kommen immer in den Unterordner ‚trunk’ (Stamm).

  • Möchte man im Entwicklungsverlauf noch einmal von einer alten Revision weiterarbeiten, kommen diese in ‚branch’ (Äste).

  • Der ‚tags’ Ordner enthält markierte Zustände.

Als erstes füllt man nun zunächst den Ordner mit den Projektdateien (_SVN_%name%). Dazu kopiert man sich die _Vorlage, benennt sie um und kopiert nun die Projektdateien in das Unterverzeichnis trunk hinein. Das macht man mit allen Projekten, die versionisiert werden sollen.

Wenn die initiale Bereitstellung der Daten erfolgt ist, kann das Projekt-Repository aufgebaut werden. Dazu klickt man mit der rechten Maustaste auf den _SVN_%name%_Repository Ordner und wählt den unten gezeigten Menüpunkt aus.

Es erscheint nun eine Dialogbox, die nach dem zu installierenden Repository-Typ fragt.

Bitte darauf achten, dass FSFS als Repository-Typ gewählt wird.
Nur dieser Typ arbeitet auf Netzwerklaufwerken!

Nun ist die Repositorystruktur aufgebaut und kann verwendet werden.

Jetzt können die Projektdaten in das Repository aufgenommen werden. Dazu klickt man mit der rechten Maustaste auf den _SVN_%name% Ordner und wählt den unten gezeigten Menüpunkt aus.

Daraufhin fragt die Routine nach dem Ort des Repositorys. Bitte geben sie dort die richtige Position an und klicken auf OK.

Nun beginnt der Import der Dateien. Während des Vorgangs, der etwas dauern kann, kann man den Fortschritt beobachten.

Damit sind die Vorbereitungen abgeschlossen und es kann mit der täglichen Arbeit begonnen werden.

Sequentielles Arbeiten

Arbeiten man nur gelegentlich an Scripten/Programmen, so ist es am einfachsten ein einzelnes Projekt auszuchecken – zu bearbeiten – und wieder einzuchecken. Dazu bietet sich die C:\_SVN_Sandbox an. An einem Beispiel:

Mit einem Rechtsklick auf die lokale Sandbox ruft man den Checkout-Dialog auf.

Hier auf den markierten Button klicken und das Projekt aus dem Repository auswählen.

Nach der Auswahl (nur trunk Unterordner) evtl. noch ein Haken zu entfernen.

Der Checkout beginnt und die Dateien werden nach C:\_SVN_Sandbox kopiert.

Wenn man nun in den Explorer schaut erkennt man, dass sich die Sandbox gefüllt hat. Zusätzlich sind alle Dateien und Ordner mit einem Icon überlagert. Dieses Icon zeigt den Status der Dateien an.

Jetzt kann man lokal mit den Dateien arbeiten und sie editieren.

Veränderte Dateien, die noch nicht wieder eingecheckt wurden haben ein rotes Ausrufungszeichen.

Wenn die Arbeit beendet ist schreibt man die Veränderungen mit „SVN Commit…“ zurück in das Repository.

Dabei kann man auch noch Bemerkungen hinzufügen.

Es kann einen Moment dauern, bis die Icons den aktuellen Status anzeigen (F5).

Zum Schluss kann die Sandbox geleert werden (inklusive des .svn Ordners).

Achtung! Die Änderungen werden sie auf _SVN_%name% im Netzwerklaufwerk nicht finden. Die Änderungen werden im Repository gespeichert! In _SVN_%name% im Netzwerklaufwerk befindet sich nur der Startzustand.

Wenn sie veränderte Dateien benötigen öffnen sie den Repository Browser und checken sie sie dort aus. Damit erhalten sie den aktuellen Stand der Datei.

Wichtig! Arbeiten sie nicht im Filesystem der Ordner _SVN_%name% bzw. _SVN_%name%_Repository auf dem Netzwerklaufwerk. Greifen sie immer über den Repository Browser auf die Dateien zu!

Paralleles Arbeiten

Lokal in C:\_SVN_%name% Unterordner mit Projektnamen erzeugen.

  • Das erledigt die Batchdatei makeSVNfolders.cmd. Sie kann ohne Probleme mehrfach ausgeführt werden um die Strukturen zu erzeugen. Achtung! Vorhandene, lokale trunk, branch und tags Unterordner werden auf C:\... gelöscht!

Anschließend wie oben gezeigt den gewünschten Zielordner anklicken und dort hinein auschecken. Bitte darauf achten, dass nur der ‚trunk’ Ordner ausgecheckt wird.

Die Dateien können dann dort verbleiben und brauchen nicht gelöscht werden.

Bitte darauf achten, das fertig kompilierte Dateien (*.exe) nicht mit in das Repository aufgenommen werden. Sie belegen unnötig Speicherplatz. Solche Dateien sind als zu ignorieren Kennzuzeichnen.

Bitte darauf achten, vor dem lokalem arbeiten immer die Repositoryinformation zu aktualisieren (Rechtsklick – SVN Aktualisieren).

Dateien hinzufügen

Will man zum Projekt neue Dateien hinzufügen checkt man es erst aus, damit es lokal liegt. Anschließend kopiert/erzeugt man dort die neuen Dateien und ruft dann den gezeigten Menüpunkt auf.

Danach verändert sich das überlagerte Icon zu einem blauen Plus um den neuen Status anzuzeigen.

Abschließend die Veränderung in das Repository mit „SVN Commit…“ übernehmen.

Veränderungen anzeigen lassen

Projekte hinzufügen

Erst die ‚_Vorlage’ auf dem Netzwerkshare kopieren, umbenennen und füllen. Dann den Ordner im Repository vorbereiten.

Auf oberster Ebene einen gleichlautenden Ordner anlegen.

Dann das neue Projekt importieren.

Button 2 x benutzen. Erst um die Position des Repositorys zu bestimmen, dann um die Position innerhalb des Repositorys festzulegen!

Links:

http://tortoisesvn.tigris.org/

http://subversion.tigris.org/

Batchdatei:

makeSVNfolders.cmd

Kommentare

Überwachen von Fremdleistung

Hi!

Vielleicht ist das im Artikel nicht deutlich geworden, aber die Projektdateien werden bei mir (am Arbeitsplatz) auf einem Netzwerklaufwerk zentral gespeichert und - das ist das wichtige - über Backup Systeme gesichert. Nur für das Programmieren liegen sie auf der lokalen Festplatte.
Sollte die Festplatte kaputt gehen ist nichts verloren. Bekomme ich einen neuen PC (Leasingtausch) ist nichts weg. Einmal neu lokal syncronisiert und ich kann weiter arbeiten.
Wenn mir ein Kollege bei einem Projekt helfen muss, syncronisiert auch er lokal und wir können beide arbeiten (natürlich nur mit Absprache und an unterschiedlichen Dateien).

Mit diesem System kann ich sogar fremde Projekte überwachen. Dafür kopiere ich die fremden Dateien von Zeit zu Zeit in ein lokales Verzeichnis und syncronisiere dieses dann wieder ins Netz (Repository). So kann man auch gut die Arbeit von eingekaufter Leistung (Mitarbeiter einer Servicefirma) nachvollziehen.

_SVN_%name%

Hallo,

hübscher Artikel. Nur ist nicht klar wofür das Verzeichnis _SVN_%name% auf dem Netzwerk letztendlich verwendet wird und nicht das nicht einfach lokal gemacht wird. Nur für den initialen Import macht ja nicht wirklich Sinn.

Gruß Chris