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)