Werkzeuge für die Git-Migration

Bei der eigentlichen Konvertierung helfen zahlreiche Werkzeuge, die jeweils auf unterschiedliche Einsatzzwecke zielen und ganz eigene Vor- und Nachteile aufweisen. Welches Konvertierungstool für das eigene Repository infrage kommt, muss daher eine entsprechende Evaluierung zeigen.

Stellenmarkt
  1. HIS-Systembetreuerin (m/w/d)
    Hochschule Geisenheim University, Geisenheim
  2. Data Scientist / Data Analyst / Data Engineer (m/w/d)
    Deutsche Bundesbank, Frankfurt am Main
Detailsuche

Bei Univention kam Git-Svn von den Git-Entwicklern zum Einsatz. Laut Christian Krause von Raritan kommt das Tool jedoch nicht sehr gut mit komplexen Repositories zurecht. Diese Erfahrung teilt auch Emir Bucalovic: Erst nach einer Kürzung der History auf die letzten beiden Jahre lief Git-Svn bei ihm ohne Absturz durch. Christian Krause empfiehlt daher bei komplexen Repositories das Werkzeug Svn2git, mit dem die Entwickler des Linux-Desktops KDE Plasma ihren Quellcode auf Git migriert haben. Auch Raritan hat sich letztendlich für dieses Tool entschieden.

Je nach Versionskontrollsystem muss man sogar mehrere Werkzeuge hintereinander schalten. Der Big-Data-Spezialist Kognito portierte sein RCS-basiertes Versionssystem zunächst in ein CVS-Repository und von dort aus mit dem Tool Cvs2git nach Git.

Geskriptete Hilfen

Aus seinen Erfahrungen bei Raritan rät Christian Krause dazu, die Konvertierung reproduzierbar zu gestalten. Nur so lassen sich Testläufe miteinander vergleichen. In jedem Fall helfen bei der Steuerung der Migrationstools selbstgeschriebene Skripte. Univention stellt seine Exemplare in einem öffentlichen GitHub-Repository unter der AGPL 3.0-Lizenz zur Verfügung. Die meisten Python-Skripte sind allerdings stark auf das Univention-Repository zugeschnitten und erhalten zudem keinen Support. Sie eignen sich daher nur als Inspirationsquelle für eigene Skripte.

Golem Akademie
  1. Java EE 8 Komplettkurs
    25.-29. Oktober 2021, online
  2. Scrum Product Owner: Vorbereitung auf den PSPO I (Scrum.org)
    24.-25. November 2021, online
  3. IT-Sicherheit für Webentwickler
    2.-3. November 2021, online
Weitere IT-Trainings

Bei erstaunlich vielen Migrationen hatten die Werkzeuge Probleme mit fehlenden Autorennamen im originalen Repository. Carl Vitullo musste sie erst in der History seines Mercurial-Repositorys nachtragen, bevor es das von ihm gewählte Tool Fast-export migrieren konnte. Emir Bucalovic exportierte die Autorennamen aus seinem Subversion-Repository in eine Textdatei, die er dann wiederum dem Konvertierungswerkzeug als Hilfe zuführte. Bei Univention konnten die Git-Migrationsteams die Daten aller Autoren aus dem hauseigenen LDAP-Server extrahieren.

Nacharbeiten notwendig

Nach der Konvertierung gilt es, im Git-Repository aufzuräumen und gegebenenfalls Korrekturen durchzuführen. Univention hat beispielsweise große Binär-Blobs aussortiert. Dabei helfen Werkzeuge wie Git filter-branch oder BFG Repo Cleaner. Letztgenanntes Tool setzte auch Carl Vitullo erfolgreich ein, mit dem er die History von rund 140.000 Commits auf rund 30.000 eindampfte. Die Werkzeuge verändern allerdings die History. Christian Krause von Raritan empfiehlt daher ihren Einsatz nur einmalig bei der Migration.

Die einzelnen Schritte nehmen bei größeren Repositories recht viel Zeit in Anspruch. So dauerte bei Raritan die Konvertierung knapp 16 Stunden. Christian Krause empfiehlt daher, die jeweiligen Zwischenergebnisse, etwa das konvertierte aber noch nicht bereinigte Git-Repository, aufzubewahren. An diesen Daten kann man dann während der Testphase schon weiterarbeiten, während ein anderer Schritt noch läuft.

Versionsverwaltung mit Git: Praxiseinstieg (mitp Professional)

Sobald sich das Repository fehlerfrei konvertieren lässt, kann die eigentliche Umstellung erfolgen. Spätestens jetzt sollte man einen detaillierten Zeitplan erarbeiten und ihn mit allen beteiligten Personen kommunizieren. Das FreeBSD-Projekt hat alle wichtigen Daten in einem Wiki-Eintrag festgehalten. Dort ließ sich unter anderem ablesen, wann der letzte Commit ins alte Repository möglich war und wann die eigentliche Konvertierung anlief. Hinzu kommen die Namen der für den jeweiligen Schritt verantwortlichen Personen. Für die Umstellung ihres zentralen Repositories hat das FreeBSD-Team rund eine halbe Woche eingeplant.

Um die Arbeiten zu koordinieren, setzen viele Unternehmen ein zentrales Repository auf. Meist handelt es sich dabei um ein GitHub- oder wie im Fall des Cloud-Service-Anbieters Adacor ein GitLab-Repository. Dort trat der selbst gehostete GitLab-Server an die Stelle des alten Subversion-Servers. Daniel Rotter vom Content-Management-System-Entwickler Sulu.io bevorzugt hingegen GitHub, das aus seiner Erfahrung vor allem die Zusammenarbeit und die Koordination von Issues vereinfacht.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Repos aufteilen für GitAbseits der Git-Konvertierung 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


lvds 21. Mär 2021

Das Mergen mit git wird doch eigentlich immer nur dann zum Problem, wenn der Branch zu...

Michael H. 17. Mär 2021

Klingt ehrlich gesagt nach viel Bastelei, Geschnippel, Frickelei, Frust und Überstunden xD

Marc_os 17. Mär 2021

Hi, gibt es eigentlich eine rechtliche Verpflichtung ein Softwareverwaltungs-System...

dummzeuch 17. Mär 2021

+1

Trockenobst 16. Mär 2021

Man hat auch viele Prozesse die nichts in diesen Tools zu Suchen haben über die Tools...



Aktuell auf der Startseite von Golem.de
Pixel 6 (Pro)
Googles Tensor-SoC ist eine wilde Mischung

Viel Samsung, wenig Google: Der Chip kombiniert extreme Computational Photography mit einem kuriosen Design zugunsten der Akkulaufzeit.
Eine Analyse von Marc Sauter

Pixel 6 (Pro): Googles Tensor-SoC ist eine wilde Mischung
Artikel
  1. Krypto: Bitcoin steigt auf neues Allzeithoch
    Krypto
    Bitcoin steigt auf neues Allzeithoch

    Der Wert vom April 2021 ist übertroffen: Der Bitcoin steigt zwischenzeitlich auf über 66.000 US-Dollar.

  2. Nintendo Switch: Deutscher Jugendschutz sperrt Dying Light in Australien
    Nintendo Switch
    Deutscher Jugendschutz sperrt Dying Light in Australien

    Das frisch für die Switch veröffentlichte Dying Light ist in Europa und in Australien nicht erhältlich - wegen des deutschen Jugendschutzes.

  3. Samsung: Galaxy Z Flip 3 kann konfiguriert werden
    Samsung
    Galaxy Z Flip 3 kann konfiguriert werden

    Samsung bietet das Falt-Smartphone Galaxy Z Flip 3 künftig auch in der Bespoke-Edition an - also in konfigurierbaren Farbkombinationen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Cyber Week Finale: Bis 33% auf Digitus-Monitorhalterungen & bis 36 Prozent auf EVGA-Netzteile • Samsung-Monitore (u. a. 24" FHD 144Hz 169€) • Bosch Professional zu Bestpreisen • Sandisk Ultra 3D 500GB 47,99€ • Google Pixel 6 vorbestellbar ab 649€ + Bose Headphones als Geschenk [Werbung]
    •  /