Migration

Migration

Dieser Migrationsleitfaden empfiehlt während der Übergangsphase eine monodirektionale Synchronisierung von SVN zu Git. Während sich dein Team mit Git vertraut macht, sollte es also nur Commits an das ursprüngliche SVN-Repository durchführen. Wenn ihr für den Wechsel bereit seid, sollte das SVN-Repository im derzeitigen Zustand gesperrt werden. Von nun an wird an die lokalen Git-Repositorys committet und über Bitbucket geteilt.

Git-Migration: Monodirektionale Synchronisierung von SVN zu Git

Dieser allmähliche Wechsel von SVN zu Git, bei dem beide Systeme separat gehalten werden, sorgt für eine sehr intuitive Migration. Alle deine Entwickler haben in der Zwischenzeit die neuen Git-Workflows kennengelernt und hatten reichlich Zeit, die Git-Befehle in den lokalen, von Bitbucket geklonten Repositorys zu üben.

Auf dieser Seite wirst du durch den finalen Schritt der Migration geleitet.

Synchronisieren des Git-Repositorys

Vergewissere dich, bevor du deine Migration zu Git abschließt, dass dein Git-Repository auch alle neuen Änderungen enthält, die in dein SVN-Repository committet wurden. Dabei kannst du ganz genauso vorgehen wie in der Synchronisierungsphase.

git svn fetch
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar sync-rebase
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force

Backup des SVN-Repositorys

Auch wenn du den alten Projektverlauf aus Zeiten vor Git im migrierten Repository noch sehen kannst, ist es für den Fall, dass du einmal die SVN-Rohdaten durchsuchen musst, empfehlenswert ein Backup des SVN-Repositorys zu erstellen. Du kannst ein Backup eines SVN-Repos einfach durchführen, indem du den folgenden Befehl auf dem Rechner ausführst, der das zentrale SVN-Repository hostet. Wenn dein SVN-Repo auf einem Linux-Rechner gehostet wird, gibst du Folgendes ein:

svnadmin dump <svn-repo> | gzip -9 > <backup-file>

Setze für <svn-repo> den Dateipfad des SVN-Repositorys ein, für das du ein Backup erstellt, und für <backup-file> den Dateipfad der komprimierten Datei, die das Backup enthält.

Einrichten eines Schreibschutzes für das SVN-Repository

All of your developers should now be committing with Git. To enforce this convention, you can make your SVN repository read-only. This process can vary depending on your server setup, but if you’re using the svnserve daemon, you can accomplish this by editing your SVN repo’s conf/svnserve.conf file. It’s [general] section should contain the following lines:

anon-access = read
auth-access = read

This tells svnserve that both anonymous and authenticated users only have read permissions.

Summary

And that’s all there is to migrating a project to Git. Your team should now be developing with a pure Git workflow and enjoying all of the benefits of distributed development. Good job!

Du möchtest mit Git arbeiten?

Sieh dir dieses interaktive Tutorial an.

Jetzt loslegen