Von Subversion zu git migrieren, alle Zweige klonen und durch Gitolite gehen?

8

Ich habe daran gearbeitet, unsere 9 Projekte in einem SVN-Repo auf 9 separate Git-Repos zu übertragen, die auf einem Server von Gitolit betrieben wurden und dann SVN herunterfahren. Sieben von ihnen waren einfach, da sie keine Zweige oder Tags hatten, also konnte ich auf meinem Arbeitsplatz ein einfaches machen:

%Vor%

Dann von meiner Workstation zum Gitolit-Server geschoben über:

%Vor%

und sie haben alle großartig gearbeitet. Jetzt sind die letzten beiden Projekte schwieriger und haben jeweils etwa 30 Tags / Zweige. Nachdem ich den 'git svn clone' wie oben für eines dieser Projekte ausgeführt habe, sehe ich:

%Vor%

Wie gehe ich nun vor, all diese Tags / Zweige auf meine lokale Arbeitsstation zu übertragen, damit ich sie durch Gitolitus schieben und den SVN-Server dauerhaft herunterfahren kann? Was muss ich in diesem Leitfaden tun, um ein "git checkout -b" für jeden Zweig und jedes Tag zu erstellen? Sollte ich svn2git oder ein anderes Tool dafür verwenden?

    
xref 07.03.2012, 17:57
quelle

4 Antworten

11

Eine hilfreiche Person in #git auf freenode irc hat mir einen kleinen Befehl geschrieben, um meine Tags und Zweige von SVN nach Git zu kopieren:

Push Zweige:

%Vor%

Befehl ausführen, der

ausgibt

Push-Tags:

%Vor%

Befehl ausführen, der

ausgibt     
xref 23.07.2012, 16:37
quelle
1

Sie können alle Remote-Referenzen auflisten, die bei der Migration von svn zu git erstellt wurden: git show-ref (verfügbar von git 1.8.2.2). Dann entscheide dich, sie zum Ursprung zu schieben.

Um alle Referenzen als Zweige zum Ursprung zu verschieben:

%Vor%

Um die Tags zum Ursprung zu verschieben:

%Vor%

Sie müssen diese Zweige möglicherweise bereinigen oder wandeln Sie einige Zweige in Tags um vor / nach dem Push.

    
zionyx 28.02.2017 00:08
quelle
0

Sie sind bereits auf Ihrer lokalen Workstation. Was Sie sehen, sind nur Verweise auf Commits und Sie können die lokalen Zweige nachverfolgen, wann immer Sie möchten.

%Vor%

Zeigen Sie Informationen an, die sich in Ihrem lokalen Repo befinden und keine Daten aus dem Remote-Repository abrufen. Du hast all diese Informationen bekommen, als du den Klon gemacht hast.

Nun, da wir alles lokal haben, müssen Sie nur die Daten an die Fernbedienung übertragen. Sie können alle Ihre Tags auf den Remote-Server übertragen:

%Vor%

Für jeden Zweig können Sie es mit:

zum Repo schieben %Vor%     
ralphtheninja 07.03.2012 21:23
quelle
0

Verwenden Sie svn2git. Dies konvertiert die Tags in Tags mit Git-Annotationen und diese werden dann mit Hilfe von     git push --tips

    
user2078314 16.02.2013 12:22
quelle

Tags und Links