Nachdem man sich entschlossen hat, mit
Git zu arbeiten, steht man vor einem weiteren Problem: Was macht man jetzt mit den alten
Subversion-Repositories? Natürlich kann man weiter Subversion verwenden, es ist schließlich kein schlechtes System. Aber warum sich mit zwei parallel zu pflegenden Systemen herumschlagen?
Auf
Simplistic Complexity gibt's eine sehr schöne Kurzanleitung, die im Wesentlichen aus drei Schritten besteht:
- Anlegen einer Textdatei für das User-Mapping
- Importieren des SVN-Repositories in Git
- Exportieren des importierten Repositories auf den Git-Server
Das sieht dann auf der Shell so aus (die Datei usermapping.txt enthält die Zuordnung von SVN-Namen zu git-eMail-Adressen in der Form "svnid = Git User <gituser@email.com>", eine Zuordnung pro Zeile):
mkdir myproject
cd myproject
git svn init http://myserver/svn/myproject/trunk/ --no-metadata
git config svn.authorsfile usermapping.txt
git svn fetch
git clone --bare .git ../myproject.git
Das in myproject ausgecheckte Subversion-Git-Gemenge kann man jetzt bedenkenlos löschen; das blitzblanke myproject.git wird auf den Git-Server expediert und kann von da aus verwendet werden.
Im Blog wird noch der eine oder andere Haken diskutiert, hauptsächlich, weil Git jedes Commit einem User zuordnet, einige Subversion-Repositories aber keinen User haben, dem der erste Commit zugeordnet ist. Nun, das war bei mir glücklicherweise nicht der Fall, und der Transfer meiner Source-Repositories von Subversion zu Git war bisher schmerzlos und schnell.
Letzter Hinweis, bevor jetzt jeder losstürzt und sein Subversion pensioniert: Es gibt auf der Windows-Plattform immer noch keinen Git-Client, vielmehr muß
Cygwin mit dem Paket
git-core (und möglichst noch git-gui) verwendet werden.
Keine Kommentare:
Kommentar veröffentlichen