2012-03-27 13 views
7

Ich versuche, ein Repository von SVN zu GIT mit svn2git zu migrieren. Es ist ein Open-Source-Projekt, öffentliche SVN-Repository Url ist: http://svn.verinice.org/svnroot/. Fühlen Sie sich frei, um die Migration zu testen ...SVN zu GIT-Migration fehlgeschlagen mit svn2git

SVN-Repository Struktur ist:

  • BRANCHES
  • TAGS
  • STAMM

habe ich den folgenden Befehl dieses Repo zu klonen:

svn2git http://svn.verinice.org/svnroot 
    --trunk TRUNK 
    --branches BRANCHES 
    --tags TAGS 

Aber Dieser Befehl migriert nur einen Zweig und überhaupt keine Tags. Ich benutzte diese Befehle, um das Ergebnis zu überprüfen:

Wie migriere ich alle Zweige und Tags? Danke für Ihre Hilfe!

UPDATE:

Nach der Verwendung von Parametern --authors Autoren-datei.txt und das Hinzufügen von Namen und E-Mail-Adresse Konfiguration git svn2git gut funktioniert:

git config --global user.name "your name" 
git config --global user.email "[email protected]" 

Sie haben eine hinzufügen Linie für alle SVN-Benutzer in autoren-file.txt:

svn-user-name = Full Name <[email protected]> 

git branch -a und git tag -l jetzt alle Zweige und Tags zurück.

Antwort

10

Ich habe keine Erfahrung mit svn2git, aber Sie könnten stattdessen versuchen, git svn clone verwenden, um den Schalter auf Git. Beachten Sie, dass dies sehr lange dauern wird. Weitere Informationen finden Sie unter git help svn.

Beachten Sie, dass dies keine korrekten Tags in git erzeugt, höchstwahrscheinlich aufgrund der Unterschiede in git und svn Tags, die in den svn2git FAQ diskutiert werden. Stattdessen erstellt das Tool Tag-Zweige. Wenn Sie diese in richtige Tags umwandeln wollen (und da ich annehme, dass Sie überhaupt nicht zu SVN zurückkehren werden, sollte dies keinen Schaden verursachen), gibt es eine Diskussion here darüber, wie man ein Skript schreibt nur das.

+1

+1, git-svn ist genug, um svn Repo komplett zu klonen –

+0

Funktioniert auch gut.Branches statt Tags ist kein Schaden - akzeptiert. –

1

Wichtig zu wissen ist, dass all diese Tools auf git's nativer SVN-Unterstützung, git-svn, aufbauen. So kann man git-svn direkt zum Klonen, zum Abrufen von Changesets und so weiter verwenden, aber es ist besser, ein einziges Skript/Werkzeug zu haben, das uns bei der Migration unterstützt und somit auch solche Tools benötigt.

Ich verwendete Svn2git Wrapper-Skript gehostet https://github.com/nirvdrum/svn2git für Subversion zu Git-Migration und es half sicher, vor allem, wenn wir Changesets aus unserem Subversion-Repository in regelmäßigen Abständen ziehen wollten, wie wir das Subversion-Repository aus offensichtlichen Gründen nicht vollständig heruntergefahren. Sie können das Ruby-Wrapper-Skript migration.rb durchgehen, um mehr zu erfahren.

Verwandte Themen