SVN-Repository via Dropbox einrichten!
Wie richte ich ein SVN-Repository – mit kostenlosem Server und einfachen Handling – ein? Wie das geht, welche Software wir benötigen und was zu beachten ist erfährst du hier!
Video-Tutorial am Ende des Beitrags!
Ich programmiere zuhause, ich programmiere in der Arbeit! Ich habe somit Source-Code zuhause und ich habe welchen in der Arbeit. Teilweise die gleichen Projekte. Doch welcher Stand ist gleich der Aktuelle?
Wie wäre es, wenn ich einen Stand in der Cloud hätte, von überall zugreifen könnte, mit mehreren Leuten an einem Projekt arbeiten kann und Änderungen detailliert nachvollziehen kann? Ja das geht!
»Das Zauberwort heißt SVN-Repository«
Benötigte SVN-Repository Software
Um das Repository einzurichten und darauf zuzugreifen, verwende ich zwei Tools:
- Dropbox: Die Dropbox bietet einen Speicherplatz in der Cloud, bis zu 2 GB kostenlos. Mit der Dropbox-Software können wir auf die Cloud wie auf einen File-Ordner zugreifen. Ideal für unseren SVN-Server.
- TortoiseSVN: TortoiseSVN bietet den Zugriff auf das Repository. Ebenfalls einfach über die Ordnerstruktur.
Repository einrichten
Um einen zentralen Platz für das SVN-Repository einzurichten, müssen wir lediglich einen Ordner in der Dropbox erstellen. Beachte, dass wir für jedes Projekt – welches wir mit dem Repository spiegeln möchten – einen eigenen Ordner benötigen. Wir klicken dann mit der rechten Maustaste auf den Ordner und wählen TortoiseSVN » Create repository here. Jetzt wird der SVN-Repository eingerichtet. Wir müssen darauf achten, dass wir die Ordner-Struktur mit anlegen (wird im nächsten Dialog abgefragt)! … Der SVN-Server ist jetzt eingerichtet!
Lokalen SVN-Projekt-Ordner erstellen
Als nächstes erstellen wir einen lokalen Ordner, der unser Projekt darstellt. Anschließend klicken wir rechts und wählen SVN Checkout…. Das bedeutet, dass wir uns den aktuellen SVN-Ordner vom Server kopieren. Wichtig ist bei der Quell-URL das file:/// davor. Somit sagen wir der Software, dass sie für die URL ein lokalen Pfad nimmt. Vorsicht: Checkouts macht man nur das erste mal um den ersten aktuellen Stand zuholen und der SVN-Software mitzuteilen, dass zwischen dem lokalen Projekt-Ordner und dem SVN-Repository eine Verbindung besteht.
Falls wir bereits ein bestehendes Projekt haben
Haben wir bereits ein bestehendes Projekt und wollen dieses „einchecken“ gibt es zwei Möglichkeiten:
- Vor dem Checkup wählen wir den Ordner und klicken mit Rechts dann TortoiseSVN » Import. Hier sagen wir dem SVN-Tool, dass wir erstmal das ganze Projekt auf den SVN-Server kopieren. Achte darauf dass die Pfade richtig gesetzt sind. Anschließend wählen wir wieder unseren lokalen Ordner und machen ein Checkup.
- Ein anderer Weg ist, dass wir genau den Vorgegebenen Weg gehen. Also erst den SVN Checkup. Dabei müssen wir drauf achten, dass wir die Pfade anpassen. Da bereits Dateien in dem Ordner sind, wird die Software den Checkout directory erweitern, das wollen wir natürlich nicht. Somit nehmen wir den letzten Teil des Pfads einfach weg. Anschließend muss ein SVN Commit gemacht werden. Das erkläre ich im nächsten Schritt.
SVN Update und SVN Commit
Nachdem wir das Projekt mittels SVN Checkup mit dem SVN-Repository (auf dem Server) verbunden haben und nun einen synchronen Stand haben, können wir anfangen zu arbeiten. Im übrigen sind die beiden Optionen SVN-Update bzw. -Commit im Rechtsklick-Popup-Menü zu finden. Beide Optionen können pro Datei oder auch für den ganzen lokalen Projekt-Ordner ausgeführt werden.
SVN Update
Jedes Mal wenn wir den neuen Stand brauchen – bspw. nach dem Arbeitsbeginn, nach einer Email usw. – machen wir ein SVN Update. Das heißt, dass wir uns den aktuellen Stand (alle Änderungen von den Kollegen) holen.
SVN Commit
Haben wir selber etwas geändert oder eine Neue Datei geschrieben machen wir ein SVN Commit. Damit spielen wir unseren Stand auf den SVN-Repository (Server). Man sollte lieber ein Commit mehr machen, als zuwenig.
Zwei Personen arbeiten an der gleichen Datei
Sehr häufig kommt es vor, dass zwei Leute an der gleichen Datei arbeiten. Dabei spielt der Erste seine Änderung auf den SVN-Server. Jetzt kommt der zweite Mitarbeiter der die gleiche Datei auf den Server spielen möchte. Diese enthält jedoch nicht die Änderungen vom ersten Kollegen dafür aber ganz neue Änderungen von ihm selber. … Was Jetzt?
Das SVN-Repository ist in diesem Fall ganz klug. Es bekommt den Konflikt zwischen zwei verschiedenen Änderungen mit. Versucht jetzt der zweite Kollege seine Änderung aufzuspielen, gibt es eine Fehlermeldung. Diese kann doppelt angeklickt werden. Anschließend ist es möglich alle Änderungen einzusehen und diese manuell auf einen Stand zu bringen.
Zusammenfassung: Begrifflichkeiten
Abschließend möchte ich mich nochmals auf die drei zentralen Begriffe stürzen:
- SVN Checkup: Der Checkup wird nur das erste mal gemacht. Man kann sich dabei vorstellen, dass dieser den lokalen und den Ordner auf dem SVN-Repository bekannt macht. Zusätzlich kopiert der Checkup den akutellen Stand vom SVN-Server auf den lokalen Ordner.
- SVN Update: Der Update-Befehl kopiert den aktuellen Stand vom Server auf den lokalen Ordner.
- SVN Commit: Der Commit-Befehl spielt den aktuellen lokalen Stand auf den Server zurück.
Das ist zwar eine ganz gute Idee, die ich auch schon hatte, die ich aber erst vor Kurzem richtig umsetzen konnte, weil es bei grösseren Projekten ein Problem mit dem Speicherplatz dabei gibt.
Und dieses Problem ist der Ordner „.svn“ der im Projektverzeichnis und damit auch auf Dropbox angelegt wird. Bei grösseren Projekten kann es durchaus passieren, dass dieses Verzeichnis den kostenlosen Speicherplatz sprengt, den man zur Verfügung hat.
Deswegen sollte man dieses Verzeichnis vor dem Checkout anlegen und in der Konfiguration von Dropbox explizit von der Synchronisierung ausnehmen. Und zwar an jedem Arbeitsplatz, der mit dem Dropbox-Ordner verbunden ist. Wichtig ist dabei, dass das Verzeichnis .svn auf dem Server vorhanden ist. Es darf ruhig leer sein. Aber es muss vorhanden sein, um die Synchronisierung abschalten zu können.
Auf diese Art funktioniert das ohne Speicherplatzprobleme.
Danke für deine ergänzenden Infos. Ich gebe dir recht, natürlich muss man bei großen Projekten genug Speicherplatz zur Verfügung haben, sonst wirds nichts. Ich denke jedoch, dass gerade für kleinere studentische Projekte die dropbox – mit kostenlosen 2GB-Speicher – ausreicht.
@Andi, aber der Projektordner liegt doch in einem lokalen Ordner so wie ich das verstanden habe und wird nur bei einem Update mit den aktuellen Dateien aus dem SVN Repository auf Stand gehalten. Das Repository liegt in einem Dropbox Ordner und wird synchronisiert. Da das .svn Verzeichnis aber nur im Working Directory(Projektverzeichnis) liegt sollte es hier keine Probleme geben.
Hat man das Projektverzeichnis auch in der Dropbox, dann ist dein Tipp natürlich sinnvoll.
Das hat ein gesteigertes Risiko! Das Repository benutzt slqlite, und das ist über Rechnergrenzen hinweg nicht multiuserfähig. Das Risiko eines korrupten Repository oder Workingcopy ist sehr hoch. Es mag angehen, wenn du das nur alleine benutzt. Ansonsten würde ich das nicht machen.
Allerdings haben wir den gleichen Ansatz schon mit Git gemacht und das sogar in einem geteilten Verzeichnis. Das hat erstaunlicherweise funktionert. Vielleicht weil Git in seinem Repository nur Daten hinzufügt, ich weiß es nicht.
Danke für den Artikel, hat mir gut geholfen. Allerdings hat mich etwas verwirrt dass mal der Bezeichnung „Checkout“ und mal die Bezeichnung „Checkup“ verwendet. Es heißt ja richtig „Checkout“, vielleicht sollte der Text für kommende Leser dahingehend geändert werden 😉