Jetzt mal Subversion von der Praktischen Seite für alle Hobby-frickler

Dieser Eintrag richtet sich jetzt einmal an alle diejenigen die ihre Anwendungen mit dem Visual Studio Express bauen, Subversion benutzen möchten, aber kein AnkhSVN-Plugin zur verfügung haben.
Ebenfalls richtet sich dieser Eintrag an alle diehenigen, welche mich schon immer gefragt haben wie das mit der Quellcodeverwaltung überhaupt funktioniert, was man damit machen kann und ob man es selbst überhaupt gebrauchen kann.

Die Antwort auf die Frage „Kann ich das überhaupt gebrauchen?“ kann man sich ziemlich schnell einfach beantworten, wenn man selbst mal in der nicht all zu erfreulichen Situation war, das man Quellcode verloren, gelöscht – oder so weit geändert hat, das die Anwendung nicht mehr funktionierte und man am liebsten einen „Zauberknopf“ gehabt hätte, der einen den Quellcode so wiederherstellt wie er vor der letzten Änderung war.

Hier möchte ich mit Hilfe von dem Subversion-Client rapidsvn und dem Visual Studio 2008 Express zeigen wie das genau funktioniert 🙂

Als erstes habe ich erst einmal eine zip datei vorbereitet.
Diese befindet sich unter http://frickelblog.de/downloads/rapidsvn.zip und ist knapp 2,4 MB groß.

Ich arbeite hier mit 2 Verzeichnissen.
Das Verzeichnis, in dem der Subversion-Client und die Subversion-Repositorys liegen, bei mir „F:\subversion\“.
Und das Verzeichnis in dem meine ProjektMappe liegt, die ich mit dem Visual Studio 2008 bearbeite, bei mir: „C:\csharp\MeinProjektOrdner\“.

In „F:\subversion\“ lege ich nun den Inhalt der Zip-Datei, dieser Ordner sieht dann so aus:

Was haben wir nun in diesem Verzeichnis?
Die Dateien „rapidsvn.exe“ und „libeay32.dll“ gehören zusammen mit dem Ordner „locale“ zum Subversion-Client „rapidsvn“.
Meine Version, welche ich hier benutze ist etwas von mit kastriert, enthält aber alles für diesen Eintrag Nötige an Funktionen.
Die Vollständige Version von rapidSVN kann man unter http://rapidsvn.tigris.org herunter laden.
Die Datei „TortoiseMerge.exe“ ist ein Programm zum vergleichen 2er Dateien.
Es stammt aus dem TortouseSVN-Projekt, welches man unter http://tortoisesvn.tigris.org herunter laden kann.
Der Order „repo“ ist quasi die „Datenbank“, welche Subversion benutzt um die Dateien mit dem Quellcode darin abzulegen.
Damit haben wir hier ein kleines Mini-SVN System – ohne Installation… praktisch 🙂

Dann wollen wir auch gleich schon mal anfangen…
Mit einem doppelklick auf die „rapidsvn.exe“ startet man den Subversion-Client.
Dieser sollte dann so aussehen:

Als erstes müssen wir jetzt die Subversion-Datenbank mit unserem Arbeits-Ordner verknüpfen in dem unser VS-Projekt mal liegen soll.
Dazu gehen wir oben im Menü auf „Repository“ und dann auf „Auschecken…“
Dort gebe ich folgende Infos für meine Verzeichnisse ein:

Ist dies erledigt erscheint der Client nun in diesem Bild:

Was wir nun auf der Rechten Seite sehen, ist der Inhalt des Ordners „C:\csharp\MeinProjektOrdner\“, welchen wir nun mit der Subversion-Datenbank verknüpft haben.

Somit ist die hälfte schon mal geschafft 🙂

Jetzt öffnen wir das Visual Studio und legen ein neues Projekt an:

Wenn man die Optionen zum angeben der Pfade nicht hat, kann man sie im Menü unter „Optionen“ und dann „Extras…“ wie folgt einstellen:

Diese Option ist recht praktisch, da die Projektmappe gleich beim erstellen gespeichert wird.
Wenn euch das Visual Studio schon einmal beim arbeiten abgestürzt ist und das komplette Projekt auf einmal weg war, weil es seit dem Erstellen nie gespeichert wurde, dann werdet ihr diese Option zu schätzen wissen 😉

In unserem RapidSVN-Fenster hat sich nun auch etwas getan.
Wenn wir nun Dateien anzeigen lassen, welche nicht unter Versionskontrolle stehen, dann sehen wir den eintrag „svntest“ von unserem eben gerade angelegten VS-Projekt.

Um diesen Ordner mitsamt Unterordnern in unsere Subversion-Datenbank zu bekommen klicken wir mit einem rechtsklick auf diesen Eintrag und wählen im KontexMenü „Rekursiv hinzufügen…“ aus.
Nun hat der Eintrag kein „?“ mehr und wurde der Quellcodeverwaltung hinzugefügt.
Dieses Hinzufügen muss für alle Dateien geschehen, welche unter der Quellcodeverwatung liegen sollen.
In der Datenbank sind die Dateien aber noch NICHT!
Um die Dateien jetzt in die Datenbank zu bekommen, wählt man aus dem KontexMenü den Eintrag „Committen“ aus.
Es öffnet sich folgendes Fenster:

Hier können wir nun wie in meinem Beispiel eine „Log-Meldung“ angeben damit wir später auch wissen, was wir zu diesem Zeiptpunkt getan haben.
Da wir jetzt das erste mal Dateien in die Datenbank legen (auch „einchecken“ genannt), habe ich einen entsprechenden Log-Eintrag gewählt.
Nach dem der Eincheck-Vorgang bestätigt wurde, sind die Dateien nun in der Datenbank und im RapidSVN sehen wir nun, das wir für usere Dateien die Version „1“ bekommen haben (die erste Änderung an der Datenbank) – und der Benutzer, der die Dateien hinzugefügt hat, steht auch dort:

Das ist ja schon mal sehr schön alles… aber.. wie funktioniert das jetzt mit dem eingangs erwähnten „Zauberknopf“?
Angenommen wir ändern jetzt was an unserem Projekt und speichern dies, dann bekommt das RapidSVN dies auch mit.
Ich habe hier in diesem Beispiel z.B. nur die Größe von der Form geändert und somit die Designer-Datei der Form geändert.

Die rote Datei zeigt uns, das sie geändert wurde.
Nun stellte sich diese Änderung aber als eine gravierende Änderung heraus, die niemals hätte passieren dürfen und jetzt brauchen wir den Quellcode, wie er vor dieser gravierenden Änderung war.
Dazu klicken wir wieder mit einem Rechtsklick auf den Eintrag der Geänderten Datei und wählen im KontexMenü „Rückgängig“.
Es erscheint eine Meldung mit dem Inhalt „Wollen Sie die lokalen Änderungen rückgängig machen?“, welchen wir natürlich bestätigen wollen.
Danach haben wir wieder DEN Stand der Datei in unserem Projekt-Verzeichnis, welchen wir nach dem Anlegen des Projektes in die Subversion-Datenbank geschrieben haben (die Version 1).

Nun haben wir nur eine Version, welche wir immer wiederherstellen können.
Ein Projekt lebt mit den Änderungen und vermutlich werden wir noch viele Versionsstände haben, welche wir in unsere Subversion-Datenbank ablegen wollen um sie später eventuell einmal wieder herzustellen.

Haben wir jetzt also eine Änderung gemacht, welche wir behalten wollen, bekommen wir wieder das rote Icon vor die Geänderten Dateien angezeigt.
Hier wählen wir nun im KontexMenü „Comitten“.
Wir bekommen wieder das Commit-Fenster angezeigt, können wieder eine Log-Meldung rein schreiben und bestätigen.

Ein blick in das RapidSVN-Fenster zeigt uns nun, das wir die Version 2 der Designer-Datei eingecheckt haben.
Diese könnten wir jetzt bei der nächsten Änderung ebenfalls wieder Herstellen.

Eine schöne und praktische Sache das 🙂

leave your comment

*

Unterstütze den Frickelblog!