Subversion Server für Windows

Möchte man problemlos einen Subversion Server unter Windows einrichten, welcher auch mit https umgehen kann, sollte sich einmal VisualSVN anschauen. Dabei gibt es eine Standard Edition welche kostenlos bereitgestellt wird (und auch kommerziell benutzt werden kann) sowie eine Enterprise Editon. Für den Normalfall sollte die Standard Edition allerdings reichen. Die Software kann dabei unter http://www.visualsvn.com bezogen werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Subversion

svn:externals mit TortiseSVN eintragen

Möchte man ein externes SVN Repository in seinen Quellcodebaum einhängen ohne doppelten Code zu produzieren so benutzt man sogenannte Externals. Mit Hilfe von TortiseSVN kann man die auch einfach einrichten. Einfach auf den entsprechenen Ordner gehen sich mittels Alt+Enter die Eigenschaften anzeigen lassen. Dort geht man auf den Tab Subversion und legt eine neue Eigenschaft mit dem Namen svn:externals und z.B. dem Wert http://invertika.googlecode.com/svn/trunk/ invertika an. Dann wird das ganze bestätigt und schon ist die externe Anbindung im Repository vorhanden.

Bestehendes Subversion Repository in Google Code importieren

Möchte man ein bestehendes Subversion Repository ín Google Code importieren so geht muss man im ersten Schritt auf seine Google Code Seite dort dann auf Source -> Browser und unten dann auf „reset this repository“ und dort klickt man dann den Punkt „Did you just start this project and do you want to ’svnsync‘ content from an existing repository into this project?“ an.

Danach ist das Repository auf Revision 0 zurückgesetzt worden. Nun wird in der Konsole mittels

svnsync init –username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn file:///path/to/localrepos

das Projekt initialisiert und mittels

svnsync sync –username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn

die Synchronisation begonnen werden. Das ganze kann dabei durchaus ein paar Stunden dauern. Ausgefüllt sieht das ganze dann z.B. so aus:

svnsync init –username seeseekey https://invertika.googlecode.com/svn https://invertika.svn.sourceforge.net/svnroot/invertika

svnsync sync –username seeseekey https://invertika.googlecode.com/svn

Sollte die Synchronisation zwischendurch unterbrochen werden so ist das kein Problem da sie jederzeit wieder gestartet werden kann und bei der letzten synchronisierten Revision anfängt.

SVN-Begrifflichkeiten

Wenn man von einem anderen Version Control System auf SVN wechselt bzw. zum ersten Mal ein VCS benutzt so wird man über einige neue Begriffe stolpern welche ich hier erklären möchte.

Repository
Das Repository bezeichnet das Archiv der Quelltexte (oder was auch immer man mittels SVN verwaltet). In dem Repository befinden sich sämtliche Revisionen des Projektes.

trunk, branch und tag
In einem SVN Repository gibt es drei Verzeichnisse names trunk, branch und tag. Im Verzeichnis trunk befindet sich die aktuelle Entwicklungszweig. Das branch Verzeichnis enthält Abspaltungen z.B. um größere Änderungen zu testen. Möchte man solche Änderung machen erzeugt man aus dem trunk einen neuen Branch. Im tag Verzeichnis können die Releaseversionen „gelagert“ werden.

Revision
Eine Revision bezeichnet die Version des Repostiories bzw. einer Datei in ebend diesem. Wenn das Repository z.B. die Revision 53 hat und man fügt eine neue bzw. ändert eine bestehende Datei des Repository so steigt deren Revision um 1. Die neue Revision ist dann 54.

Checkout
Im Gegensatz zu VC Systemen wie Visual SourceSafe bezeichnet ein Checkout bei SVN das holen einer Arbeitskopie des Repository vom Server.

Lock
Ein Lock benötigt man dann wenn man eine Datei bearbeiten möchte. Dadurch wird die Datei gesperrt, so das andere Nutzer sie nicht bearbeiten können (je nach Einstellung). Möchte man die bearbeitete Datei nun zurück in Reposity bringen so macht man ein Commit.

Commit
Mit einem Commit werden die veränderten Dateien wieder ins Repository hochgeladen.

Weitere Informationen unter:
http://de.wikipedia.org/wiki/Subversion_(Software)

SVN Server Hosting

Ich war vor einiger Zeit auf der Suche nach einem Hostingdienst für SVN Server. Hintergrund war das ich meine privaten Sourcecodes nicht mehr nur auf einem Rechner benutzen wollte sondern über die Entwicklung auf mehreren Rechnern betrieb (und betreibe). Natürlich hätte ich einen SVN Server aufsetzen können und diesen benutzen können. Doch wollte ich mich nicht mit Dingen wie der Aktualisierung des Servers etc. aufhalten.

Also ging die Suche los. Es gibt eine relativ überschaubare Anzahl von SVN Hosting Diensten. Die meisten dieser Dienste waren für meine Zwecke schlicht überteuert oder die Server standen in den USA, was in diesem Fall ein K.O. Kriterium war :) Nach etlichen Stunden (okay es waren nur anderthalb :)) fand ich dann endlich etwas was meinen Vorstellungen entsprach.

Der Dienstleister nennt sich Quaritsch und Winkler Web Services und ist unter https://www.qwws.net/ zu finden. Die Preise dort sind sehr moderat, selbst das teuerste Paket kostet nur 8 € im Monat. Man muss auch nicht die Katze im Sack kaufen, da man auch einen Testserver für eine Woche testen kann. Ich benutze nun seit einiger Zeit das developerSVN-Paket und bin doch rundum zufrieden :)