Weblog - kronn.de

erste Schritte mit Subversion

Mir gefällt an Subversion, dass man recht schnell nutzen kann. Sicherlich kommen immer mehr Details dazu, je mehr man sich damit beschäftigt, aber das grundlegende ist schnell erlernt.

Es fängt ja schon an, wenn man sich bestehende Repositorys ansieht. Je nachdem, welche Art des Zugangs man wählt, erhält man verschiedene Informationen. Wenn man einen grafischen Client á là TortoiseSVN verwendet, kann man schnell durch die Verzeichnisse wandern, sich Lognachrichten ansehen und das gesamte Archiv inhaltlich und zeitlich durchstöbern.

Einfach so. Aber dabei bleibt es ja nicht. Ich gehe jetzt mal davon aus, dass Ihr irgendwelche Texte/Programme/Webseiten habt, die sich immer etwas weiterentwickeln. Sowas ist ideal für Versionsverwaltung geeignet. Um Subversion zu nutzen brauchen wir ein Subversion-Archiv und mindestens eine Arbeitskopie. Nach der Installation, die ich im letzten Artikel („Installation von Subversion“:http://kronn.de/weblog/2006/05/27/installation-von-subversion/) beschrieben habe, haben wir alle notwendigen Werkzeuge dafür.

h3. Subversion-Archiv einrichten

Mit @svnadmin create h:/svn/@ habe ich auf meiner Windowskiste das erste Archiv erzeugt. Soweit so einfach. Jetzt haben wir ein leeres Archiv. Als nächstes müssen die ersten Daten in das Archiv importiert werden.

Am besten ist es, wenn man sich ein temporäres Verzeichnis anlegt (z. B. h:/temp/) und dort alle Dateien reinkopiert. Für Programmierprojekte empfiehlt sich außerdem die folgende Verzeichnisstruktur:

trunk/
tags/
branches/

Das eigentliche Projekt kommt dabei in das Verzeichnis „trunk“. Die anderen beiden Verzeichnisse kann man als Hilfmittel betrachten. Nebenzweige können bei dann „branches“ untergebracht werden und „tags“ kann man verwenden, um eine bestimmte Revision einfacher finden zu können. Wie das funktioniert, möchte ich etwas später erzählen.

Mit @svn import h:/temp/ h:/svn/ -m ‚Import der Dateien’@ importiert man dann alles.

Jetzt ist das Archiv eingerichtet. Um damit arbeiten zu können, brauchen wir nur noch eine Arbeitskopie. Das temporäre Verzeichnis, bei mir h:/temp/, kann jetzt wieder gelöscht werden, weil die Dateien bereits sicher im Repository verstaut sind.

h3. Erzeugen einer Arbeitskopie

Um eine Arbeitskopie zu erzeugen, legen wir uns zuerst ein Verzeichnis dafür an. In dieses neue, leere Verzeichnis holen wir uns dann eine Arbeitskopie aus dem Repository. Dieser Vorgang nennt sich „check out“, weshalb die Befehlszeile wie folgt aussieht:

mkdir h:/projekte/webseite
svn checkout h:/svn/trunk h:/projekte/webseite

Das Verzeichnis @h:/projekte/webseite/@ wird jetzt mit den Daten der aktuellsten Revision aus dem Projektarchiv (in diesem Falle aus dem Verzeichnis /trunk/) gefüllt. Gleichzeitig werden einige versteckte Verzeichnisse mit Namen @.svn@ angelegt, die Subversion anzeigen, dass es sich um eine Arbeitskopie handelt und in welchem Zustand sie sich befindet.

h3. Anfang der Arbeit

Jetzt kann man lustig in der Arbeitskopie Dateien bearbeiten. Wenn man seine Änderungen (Verbesserungen, hoffentlich :-) dann wieder im Repository speichern möchte, ruft man einfach den Befehl @svn commit@ auf. Da bei Subversion zu jeder Revision eine Lognachricht gespeichert wird, muss diese beim Commit (oder auch „check in“) mit angegeben werden.

h:
cd /projekte/webseite
svn commit -m 'Seitennavigation nach links verschoben'

Wenn man sich im Verzeichnis der Arbeitskopie befindet, müssen keine Angaben dazu gemacht werden, wo sich das eigentliche Archiv befindet. Diese Information steht (unter anderem) in den versteckten @.svn@-Verzeichnissen.

h3. Links

Einen recht ähnlichen Artikel (mit weniger Geschwafel) hat Peter auf seiner Seite veröffentlicht: „Subversion unter OS X“:http://peter-rehm.de/2006/04/27/subversion-unter-osx/

Abgelegt in: Online
Veröffentlicht am 11.06.2006 um 17:04
Dauerhafter Link zu "erste Schritte mit Subversion"

  • Hallo,
    ich hab mal eine Frage zu Deinem wirklich super strukturierten Blog. Wie hast Du es geschafft, mit WordPress gleichzeitig ein Monatsarchiv und ein Wochenarchiv zu realisieren? Ich habe das auch heute versucht, aber leider nicht geschafft. Es werden zwar die richtigen Beiträge der entsprechen KW selektiert, aber ansonsten werden alle Texte des Jahresarchivs gezogen. Bei Dir dagegen gibt es ja für Kalenderwochen tolle Seitentitel und es ist ein kurzer Link (mod_rewrite), ich kann zwar wie gesagt die KW aufrufen, aber nur über Parameter &m=2006&w=29. Wie muß man denn da die htaccess anpassen?
    Vielen Dank für einen Tipp in die richtige Richtung!
    Ansonsten wirklich Gratulation zu Deinem tollen Blog – inhaltlich wie äußerlich :-)

Diese Internetseite wurde von Wordpress zusammenebastelt und besteht aus geprüftem XHTML und CSS.
Das hat viele Vorteile.

Weitere Seiten mit ähnlichen Vorteilen preisen gutes Webdesign an oder enthalten Texte.
So ist das Leben eben.
© Kronn/2003-2005

Mein Server hat, nebenbei gesagt, 0,391 Sekunden benötigt, das hier zu fabrizieren.
War aber nicht böse gemeint.


Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /var/www/K1054131198/docroot/kronn.de/etc/counter/counter.php:61 Stack trace: #0 /var/www/K1054131198/docroot/kronn.de/weblog/wp-content/themes/kronn/footer.php(19): include() #1 /var/www/K1054131198/docroot/kronn.de/weblog/wp-includes/template.php(688): require_once('/var/www/K10541...') #2 /var/www/K1054131198/docroot/kronn.de/weblog/wp-includes/template.php(647): load_template('/var/www/K10541...', true) #3 /var/www/K1054131198/docroot/kronn.de/weblog/wp-includes/general-template.php(76): locate_template(Array, true) #4 /var/www/K1054131198/docroot/kronn.de/weblog/wp-content/themes/kronn/single.php(31): get_footer() #5 /var/www/K1054131198/docroot/kronn.de/weblog/wp-includes/template-loader.php(74): include('/var/www/K10541...') #6 /var/www/K1054131198/docroot/kronn.de/weblog/wp-blog-header.php(19): require_once('/var/www/K10541...') #7 /var/www/K1054131198/docroot/kronn.de/weblog/index.php(17): require('/var/www/K10541...') #8 {main} in /var/www/K1054131198/docroot/kronn.de/etc/counter/counter.php on line 61