Migration von Subversion zu Git: Überblick

Der Umstieg eines Software-Entwicklungsteams von Subversion (SVN) auf die verteilte Versionskontrolle Git muss keine Herkulesaufgabe sein, sondern lässt sich in fünf nahtlose Abschnitte strukturieren und zielgerichtet vorantreiben. Diese Artikelreihe zeigt auf, wie eine bestehende Projekt-History in ein Git-Repository importiert wird, wie man es mit dem originalen SVN-Repository synchronisiert und wie sich schließlich mithilfe von Bitbucket ein Git-basierter Kollaborations-Workflow implementieren lässt. Dabei muss das Team die aktive SVN-Entwicklung nicht opfern, bis es tatsächlich bereit ist, den reinen Git-Workflow zu adaptieren. Zunächst ein Überblick.

Überblick

Der Prozess der Migration von SVN zu Git kann in fünf einfache Schritte heruntergebrochen werden:

  1. Vorbereitung der Umgebung für die Migration
  2. Konvertierung des SVN-Repositorys in ein lokales Git-Repository
  3. Synchronisation des lokalen Git-Repositorys, wenn sich das SVN-Repository ändert
  4. Teilen des Git-Repositorys via Bitbucket mit anderen Entwicklern
  5. Migration des Entwicklungsprozesses von SVN zu Git

Bei der Vorbereitung, der Konvertierung und der Synchronisierung wird eine SVN-Commit-Historie in ein Git-Repository umgewandelt. Der beste Weg, diese drei Schritte zu managen, besteht darin, ein Teammitglied zum Migrationsleiter zu machen. Vorbereitung, Konvertierung und Synchronisierung sollten auf dem lokalen Rechner dieser Person stattfinden.

SVN_Git_Migration_1

Parallelbetrieb von SVN und Git

Nach der Synchronisierungsphase dürfte der Migrationsleiter keine Probleme haben, das lokale Git-Repository auf dem gleichen Stand mit dem SVN-Gegenstück zu halten. Um das Git-Repository mit anderen Entwicklern zu teilen, kann er es in Bitbucket pushen, Atlassians Online-Git-Hosting-Dienst.

SVN_Git_Migration_2

Sobald es in Bitbucket ist, können andere Entwickler das konvertierte Git-Repository auf ihre lokalen Maschinen klonen, die History mithilfe von Git-Kommandos einsehen und damit beginnen, es in ihre Build-Prozesse zu integrieren. Allerdings ist eine One-Way-Synchronisierung von SVN zu Git sinnvoll, bis das Team bereit ist, auf den reinen Git-Workflow umzusteigen. Das heißt, dass sie alle ihre Git-Repositories als "read only" behandeln und weiterhin in das originale SVN-Repository committen sollten. Die einzigen Änderungen am Git-Repository sollten stattfinden, wenn der Migrationsleiter sie synchronisiert und die Aktualisierungen in Bitbucket pusht.

Nahtlose Transition

Somit entsteht eine Transitionsperiode, in der das Team sich mit Git vertraut machen kann, ohne den bestehenden SVN-basierten Workflow zu unterbrechen. Wenn das Team schließlich sicher und bereit für den Umstieg ist, besteht der letzte Schritt des Migrationsprozesses darin, das SVN-Repository einzufrieren und stattdessen mit Git zu committen.

SVN_Git_Migration_3

Dieser Umstieg sollte ein natürlicher Prozess sein, da der gesamte Git-Workflow bereits gegenwärtig ist und die Entwickler alle Zeit hatten, um Git kennenzulernen. An diesem Punkt ist die Migration von SVN zu Git erfolgreich abgeschlossen.

Die Folgeartikel widmen sich den einzelnen Schritten dieser Transition in aller Ausführlichkeit. Der Prozess beginnt mit den Vorbereitungen.

Weiterführende Infos: Ihr Partner für Git und Stash

Kennen Sie Stash von Atlassian? Stash bietet eine zentrale Lösung zum Management des gesamten distributierten Codes: Hier kommen alle Git-Repositories im Unternehmen zusammen, hier finden Entwickler immer die letzte offizielle Version eines Projekts, hier können Projektverantwortliche Berechtigungen kontrollieren, um sicherzustellen, dass die richtigen Nutzer Zugriff auf den richtigen Code haben.

Möchten Sie mehr erfahren? Wir sind offizieller Vertriebspartner von Atlassian und einer der größten Atlassian Experts Partner weltweit. Gerne unterstützen wir Sie bei der Evaluierung, Lizenzierung und Adaption von Stash. Und wenn Sie Atlassian-Lizenzen bei //SEIBERT/MEDIA kaufen, gewähren wir Ihnen einen Rabatt in Höhe von 10% der Lizenzkosten in Form von Beratungsleistungen. Bitte sprechen Sie uns einfach an.

Branch-basierte Git-Workflows mit Stash adaptieren
Echte Integration: Das Zusammenspiel von JIRA, Stash und Bamboo
Interview: Die Vorteile von Git in der Software-Entwicklung und die Möglichkeiten von Stash
So funktioniert die Lizenzierung von Atlassian-Produkten