Subversion Repository unter Windows erstellen
Verfasst: Donnerstag 11. Oktober 2007, 09:28
Hallo!
(Beim Schreiben dieses Berichts war Subversion in der Version 1.4.5 aktuell.)
Installieren:
Zuerst hole ich mir Subversion vom Webserver. Auf der Homepage http://subversion.tigris.org/ ist immer irgendwo ein Link zur aktuellen Version zu finden.
Mir passt die ZIP-Version besser als das automatisierte Setup. Diese ZIP-Version findet sich hier:
http://subversion.tigris.org/servlets/P ... olderID=91
Ganz unten: "svn-win32-1.4.5.zip"
Nun entpacke ich die Datei "svn-win32-1.4.5.zip" in irgendeinen Ordner. Dieser enthält jetzt den Ordner "svn-win32-1.4.5". Diesen benenne ich sofort nach "svn" um. Den Ordner "svn" kopiere ich jetzt in den Programme-Ordner von Windows.
Zielordner: *C:\Programme\svn*
Den "bin"-Ordner füge ich dem Windows-Pfad hinzu.
Dafür wird an die Umgebungsvariable *PATH* ";C:\Programme\svn\bin" (ohne die Anführungszeichen) angehängt.
Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen
Damit wäre Subversion schon installiert und Einsatzbereit.
SVN-Repository erstellen:
Dazu erstelle ich mir den neuen Ordner *C:\svn*. Dann öffne ich die DOS-Konsole und wechsle mit dem Befehl ``CD \D C:\svn`` in diesen Ordner.
Das Kommandozeilenprogramm *svnadmin* ist unter Anderem auch dafür zuständig, neue Repositories zu erstellen.
Der Befehl ``svnadmin create mein_programm`` erstellt unterhalb des Ordners *C:\svn* das neue Repository *mein_programm*.
So ein Repository ist sozusagen der Container oder die Datenbank, in der alles aufbewahrt wird. Und es ist keine schlechte Idee, den gesamten Ordner *C:\svn* in den täglichen Sicherungen zu berücksichtigen.
Mehr hat man nicht zu tun um lokal ein SVN-Repository zu erstellen.
Tortoise-SVN:
Tortoise-SVN ist ein Tool, welches sich in den Windows-Explorer einfügt. Damit kann man, wunderbar einfach, die Daten eines Repositories verwalten.
Zu finden unter: http://tortoisesvn.net/
Man muss wissen, dass es immer zwei Orte gibt, an denen die Daten liegen. Einmal im Repository und einmal in der Arbeitskopie. Man arbeitet nicht direkt mit den Dateien im Repository, sondern mit den Dateien in der Arbeitskopie. Wenn man fertig ist, dann gleicht man die Arbeitskopie mit dem Repository ab.
Es hat sich eingebürgert, dass man in Subversion drei spezielle Ordner erstellt. *trunk*, *tags* und *branches*
In *trunk* findet sich immer die aktuelle Version der Dateien.
In *tags* liegen Kopien der Releases. Also der Dateien zu einem veröffentlichten Release.
Z.B. so:
In Unterordnern von *branches* arbeitet man, wenn eine Änderung am Code den *trunk*-Zweig zu lange außer Gefecht setzen würde. Der Code im *trunk*-Ordner sollte nämlich immer funktionieren bzw. kompilierbar sein. Das ist wichtig, dass andere Entwickler auch damit arbeiten können.
Diese Ordner erstelle ich mit Tortoise-SVN. Zuerst erstelle ich mir aber noch den Ordner, in dem am Programm gearbeitet wird.
*C:\dev\mein_programm*
Wenn man im Explorer mit der rechten Maustaste auf den Ordner *mein_programm* klickt, dann findet man nach der Installation von Tortoise-SVN einen neuen Menüpunkt "Tortoise-SVN" im Kontextmenü. Dort klicke ich auf *Repo-Browser*. Danach werde ich gefragt, welches Repository ich öffnen möchte. Als URL gebe ich "file:///C:/svn/mein_programm" ein. -- Es öffnet sich der *Repo-Browser* und zeigt das eben erstellte, leere Repository.
Ein Rechtsklick auf das Repository eröffnet die Möglichkeiten, die man im Repo-Browser hat. Unter Anderem auch "Create folder...". Und Das setze ich auch ein um die drei Spezielordner zu erstellen.
Man wird jedes Mal nach einer Bemerkung gefragt. Das ist ein wichtiger Punkt bei Subversion. So lässt sich später nachvollziehen, was wann von wem gemacht wurde. Übergehe diesen Schritt NIE. Gib immer etwas sinnvolles ein.
Noch etwas ist dabei wichtig. SEHR WICHTIG!!!
Verwende keine Umlaute oder Sonderzeichen. Weder in der Bemerkung noch als Ordner- oder Dateiname. Tu es nicht!
Es muss dir genügen, wenn ich hier behaupte: "Du bekommst Probleme, wenn du Umlaute verwendest! Sogar große Probleme."
Repository auschecken:
Nachdem die Spezezialordner erstellt wurden, genügt es fürs Erste, wenn wir sie nicht weiter beachten und einfach nur im *trunk*-Ordner arbeiten. Aber gearbeitet wird ja nie direkt im Repository sondern in der Arbeitskopie. Deshalb müssen wir den *trunk*-Ordner auschecken und damit unsere Arbeitskopie als SVN-Arbeitskopie kennzeichnen.
Mit der rechten Maustaste klicke ich dazu wieder auf den Ordner *C:\dev\mein_programm*. Im Kontextmenü unterhalb des Menüpunktest *Tortoise-SVN* findet man den Menüpunkt *Checkout*. Es öffnet sich das Fenster "Checkout".
Als URL of repository gebe ich "file:///C:/svn/mein_programm/trunk" ein. Als Checkout directory sollte automatisch "C:\dev\mein_programm" angegeben sein. Mit einem Klick auf die Schaltfläche "OK" wird der Ordner *C:\dev\mein_programm* als Arbeitskopie von *file:///C:/svn/mein_programm/trunk* markiert. Dazu hat SVN automatisch den unsichtbaren Unterordner *.svn* erstellt. Dieser darf nicht gelöscht werden, da SVN diesen Ordner zum Arbeiten braucht.
Arbeiten:
Das ist jetzt nur ein Beispiel mit einer Textdatei. Aber so funktioniert es auch mit Code, Binärdateien, Bildern, ...
Ich erstelle in der Arbeitskopie die Textdatei "hallo_welt.txt". In diese Textdatei schreibe ich "Hallo Welt". Die Datei ist noch nicht registriert. Das erledige ich mit Tortoise-SVN.
Ein Klick mit der rechten Maustaste auf die neue Textdatei. --> Tortoise-SVN --> Add...
Und schon ist die Datei gekennzeichnet. Sie ist noch nicht im Repository. Das erledige ich mit einem Klick mit der rechten Maustaste auf den Ordner *C:\dev\mein_programm*. --> Tortoise-SVN --> Commit...
Nicht vergessen, jede Änderung im Repository muss beschrieben werden, damit man später nachverfolgen kann, wer, was, wann und vielleicht sogar warum am Repository geändert hat.
Nachdem man etwas an der Arbeitskopie geändert hat, muss man nur wieder ein neues Commit durchführen um das Repository auf dem neuesten Stand zu halten. Dabei wird jeder Versionsstand gespeichert. So kann man jederzeit wieder zu einer alten Version zurück kehren.
Wenn ich jetzt also die Textdatei ändere und dann noch einmal einen Commit durchführe, dann wird im Repository die alte und die neue Version der Textdatei gespeichert.
Mit *Tortoise-SVN* --> Show log... kannst du dir die Geschichte der Textdatei ansehen. Du kannst dir damit auch die Unterschiede zwischen den Versionen der Textdatei anzeigen lassen. Probier einfach mal aus, was du dort alles mit der rechten Maustaste tun kannst.
mfg
Gerold
(Beim Schreiben dieses Berichts war Subversion in der Version 1.4.5 aktuell.)
Installieren:
Zuerst hole ich mir Subversion vom Webserver. Auf der Homepage http://subversion.tigris.org/ ist immer irgendwo ein Link zur aktuellen Version zu finden.
Mir passt die ZIP-Version besser als das automatisierte Setup. Diese ZIP-Version findet sich hier:
http://subversion.tigris.org/servlets/P ... olderID=91
Ganz unten: "svn-win32-1.4.5.zip"
Nun entpacke ich die Datei "svn-win32-1.4.5.zip" in irgendeinen Ordner. Dieser enthält jetzt den Ordner "svn-win32-1.4.5". Diesen benenne ich sofort nach "svn" um. Den Ordner "svn" kopiere ich jetzt in den Programme-Ordner von Windows.
Zielordner: *C:\Programme\svn*
Den "bin"-Ordner füge ich dem Windows-Pfad hinzu.
Dafür wird an die Umgebungsvariable *PATH* ";C:\Programme\svn\bin" (ohne die Anführungszeichen) angehängt.
Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen
Damit wäre Subversion schon installiert und Einsatzbereit.
SVN-Repository erstellen:
Dazu erstelle ich mir den neuen Ordner *C:\svn*. Dann öffne ich die DOS-Konsole und wechsle mit dem Befehl ``CD \D C:\svn`` in diesen Ordner.
Das Kommandozeilenprogramm *svnadmin* ist unter Anderem auch dafür zuständig, neue Repositories zu erstellen.
Der Befehl ``svnadmin create mein_programm`` erstellt unterhalb des Ordners *C:\svn* das neue Repository *mein_programm*.
So ein Repository ist sozusagen der Container oder die Datenbank, in der alles aufbewahrt wird. Und es ist keine schlechte Idee, den gesamten Ordner *C:\svn* in den täglichen Sicherungen zu berücksichtigen.
Mehr hat man nicht zu tun um lokal ein SVN-Repository zu erstellen.
Tortoise-SVN:
Tortoise-SVN ist ein Tool, welches sich in den Windows-Explorer einfügt. Damit kann man, wunderbar einfach, die Daten eines Repositories verwalten.
Zu finden unter: http://tortoisesvn.net/
Man muss wissen, dass es immer zwei Orte gibt, an denen die Daten liegen. Einmal im Repository und einmal in der Arbeitskopie. Man arbeitet nicht direkt mit den Dateien im Repository, sondern mit den Dateien in der Arbeitskopie. Wenn man fertig ist, dann gleicht man die Arbeitskopie mit dem Repository ab.
Es hat sich eingebürgert, dass man in Subversion drei spezielle Ordner erstellt. *trunk*, *tags* und *branches*
In *trunk* findet sich immer die aktuelle Version der Dateien.
In *tags* liegen Kopien der Releases. Also der Dateien zu einem veröffentlichten Release.
Z.B. so:
Code: Alles auswählen
tags/release_0.0.1/
tags/release_0.1.0/
...
Diese Ordner erstelle ich mit Tortoise-SVN. Zuerst erstelle ich mir aber noch den Ordner, in dem am Programm gearbeitet wird.
*C:\dev\mein_programm*
Wenn man im Explorer mit der rechten Maustaste auf den Ordner *mein_programm* klickt, dann findet man nach der Installation von Tortoise-SVN einen neuen Menüpunkt "Tortoise-SVN" im Kontextmenü. Dort klicke ich auf *Repo-Browser*. Danach werde ich gefragt, welches Repository ich öffnen möchte. Als URL gebe ich "file:///C:/svn/mein_programm" ein. -- Es öffnet sich der *Repo-Browser* und zeigt das eben erstellte, leere Repository.
Ein Rechtsklick auf das Repository eröffnet die Möglichkeiten, die man im Repo-Browser hat. Unter Anderem auch "Create folder...". Und Das setze ich auch ein um die drei Spezielordner zu erstellen.
Code: Alles auswählen
file:///J:/svn/mein_programm/
|-branches/
|-tags/
|-trunk/
Noch etwas ist dabei wichtig. SEHR WICHTIG!!!
Verwende keine Umlaute oder Sonderzeichen. Weder in der Bemerkung noch als Ordner- oder Dateiname. Tu es nicht!
Es muss dir genügen, wenn ich hier behaupte: "Du bekommst Probleme, wenn du Umlaute verwendest! Sogar große Probleme."
Repository auschecken:
Nachdem die Spezezialordner erstellt wurden, genügt es fürs Erste, wenn wir sie nicht weiter beachten und einfach nur im *trunk*-Ordner arbeiten. Aber gearbeitet wird ja nie direkt im Repository sondern in der Arbeitskopie. Deshalb müssen wir den *trunk*-Ordner auschecken und damit unsere Arbeitskopie als SVN-Arbeitskopie kennzeichnen.
Mit der rechten Maustaste klicke ich dazu wieder auf den Ordner *C:\dev\mein_programm*. Im Kontextmenü unterhalb des Menüpunktest *Tortoise-SVN* findet man den Menüpunkt *Checkout*. Es öffnet sich das Fenster "Checkout".
Als URL of repository gebe ich "file:///C:/svn/mein_programm/trunk" ein. Als Checkout directory sollte automatisch "C:\dev\mein_programm" angegeben sein. Mit einem Klick auf die Schaltfläche "OK" wird der Ordner *C:\dev\mein_programm* als Arbeitskopie von *file:///C:/svn/mein_programm/trunk* markiert. Dazu hat SVN automatisch den unsichtbaren Unterordner *.svn* erstellt. Dieser darf nicht gelöscht werden, da SVN diesen Ordner zum Arbeiten braucht.
Arbeiten:
Das ist jetzt nur ein Beispiel mit einer Textdatei. Aber so funktioniert es auch mit Code, Binärdateien, Bildern, ...
Ich erstelle in der Arbeitskopie die Textdatei "hallo_welt.txt". In diese Textdatei schreibe ich "Hallo Welt". Die Datei ist noch nicht registriert. Das erledige ich mit Tortoise-SVN.
Ein Klick mit der rechten Maustaste auf die neue Textdatei. --> Tortoise-SVN --> Add...
Und schon ist die Datei gekennzeichnet. Sie ist noch nicht im Repository. Das erledige ich mit einem Klick mit der rechten Maustaste auf den Ordner *C:\dev\mein_programm*. --> Tortoise-SVN --> Commit...
Nicht vergessen, jede Änderung im Repository muss beschrieben werden, damit man später nachverfolgen kann, wer, was, wann und vielleicht sogar warum am Repository geändert hat.
Nachdem man etwas an der Arbeitskopie geändert hat, muss man nur wieder ein neues Commit durchführen um das Repository auf dem neuesten Stand zu halten. Dabei wird jeder Versionsstand gespeichert. So kann man jederzeit wieder zu einer alten Version zurück kehren.
Wenn ich jetzt also die Textdatei ändere und dann noch einmal einen Commit durchführe, dann wird im Repository die alte und die neue Version der Textdatei gespeichert.
Mit *Tortoise-SVN* --> Show log... kannst du dir die Geschichte der Textdatei ansehen. Du kannst dir damit auch die Unterschiede zwischen den Versionen der Textdatei anzeigen lassen. Probier einfach mal aus, was du dort alles mit der rechten Maustaste tun kannst.
mfg
Gerold