SVN Checkouts
"Subversion (SVN) ist eine Open-Source-Software zur Versionsverwaltung von Dateien und Verzeichnissen. Die Versionierung erfolgt in einem zentralen Projektarchiv (engl. repository) in Form einer einfachen Revisionszählung. Wenn Änderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgeführt werden, werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Ständen übertragen; anfangs das gesamte Projekt, später nur Änderungen." wikipedia.de
Anwender haben damit die Möglichkeit, immer den aktuellsten Entwicklungsstand (trunk) zu testen. Über die so genannten Branches kommt man an bestimmte vom Entwickler definierte Versionsstände ran.
Wer die aktuellste Version eines Moduls oder dem Core testen/ausprobieren möchte kann nicht auf fertige Download Pakete zurück greifen. Die neuesten Dateien liegen mit zusätzlichen Informationen über die Änderungen einzeln auf dem SVN Server. Theoretisch könnte man jede Datei einzeln runter laden, aber wozu gibt es denn das SVN. Mit einem Subversion Client, lässt sich problemlos der aktuelle Entwicklungsstand nach Hause holen.
- Erst einmal benötigen wir einen SVN Client. Ein beliebtes Tool unter Windows ist TortoiseSVN. Herunter laden, installieren, und schon kann man den Client über das Contextmenü (Rechts klick menü) verwenden.
- Zum Beispiel wollen wir den aktuellsten Entwicklungsstrang von Content testen. Und los gehts: Neuen Ordner erstellen "Content"
- Rechtsclick auf den Ordner
- Im Contextmenu "SVN Checkout" auswählen
- Auf code.zicula.org/content den SVN Pfad heraus finden. Lautet in diesem Falle: https://code.zikula.org/svn/content/main
- Link in das Adressfeld (URL of respository) von TrotroiseSVN eingeben und OK klicken.
- Usernamen und Passwort von code.zikula.org eingeben.
- Warten bis alle Files runter geladen sind
- Alle .svn Ordner löschen (zum Beispiel über die erweiterte Suche von Windows)
- Tada, jetzt habt ihr die aller aktuellste Version von Content bei euch auf dem Rechner.
- Hochladen, aktualisieren, fertig.
Problemchen
.svn Ordner
In den .svn Ordner werden Informationen über die aktuelle Revision, Änderungen an der Dateien und so weiter gespeichert. Diese Informationen braucht ihr nicht und sie blähen den Inhalt des Moduls nur unnötig auf. Um sie zu löschen, einfach einen Rechtsklick auf den neu erstellten Ordner, dort auf Suche klicken und unter erweiterte Suche, die "versteckten Ordner" mit durchsuchen lassen. Dann in die Suchmaske .svn eingeben und dort alle Ordner mit samt dem Inhalt löschen.
Filezilla (und mehrere andere FTP-Clients) ermöglichen ebenso das Herausfiltern von CVS und SVN Dateien.
Natürlich geht das auch mit einem Einzeiler in der Konsole (z.B. direkt auf dem Webserver):
rm -rf `find . -type d -name .svn`
Trunk und Branch runter geladen
Manche Entwickler geben nur den Einstieg in Ihren SVN Zweig an. So kann es schon mal passieren, dass man neben dem Trunk auch gleich noch alle Branches oder andere Dateien runter lädt. Um dies zu verhindern, kann man einfach im Tortoise Client an den im CoZi? ermittelten Link den Unterordner anhängen. Schon steigt der SVN Client im korrekten Ordner ein und lädt nur noch den Trunk.
Commandline Export/Checkout
Wer sich lediglich die neueste Version (Head) aus dem SVN zur Installation herunter laden will, kann z.B. auch das Command-Line Tool von CollabNet? verwenden. Dies hat den Vorteil, dass man einen "export" und keinen "checkout" machen kann. Hierbei werden die .svn-Ordner erst garnicht erzeugt. Weiterhin kann man sich mit Hilfe einer kleinen Batchdatei gleich mehrere Projeke auf einmal herunter laden. Dies ist sinnvoll, wenn man häufig auf die aktuellste SVN-Version updaten möchte.
Beispiel Batch Datei zum Export von Modulen: (export.bat)
@echo off set modulname=%1 echo === Export %modulname% === if not exist %modulname% mkdir %modulname% svn --force export https://code.zikula.org/svn/%modulname%/ > ./%modulname%/export.log echo. echo. echo === %modulname% exported === echo. echo. pause exit
Diese Batch-Datei kann Beispielsweise von einer weiteren Batch Datei aufgerufen werden: (start-export.bat)
@echo off start export mediaattach start export content start export scribite start export community-german start export eternizer
Somit kann man die oben stehenden Projekte auf einen Schlag exportieren.
Clients
- TortoiseSVN, Windows
- CollabNet Subversion Command-Line Client, Windows
- KDESvn, Linux
