Git-2-SVN Migration?

8

Ja, ich weiß. Warum möchten Sie von Git zu SVN migrieren?

Nun, ich bin zufällig in einer Situation, in der ich ein riesiges Git Repo zu Subversion migrieren muss! Hier ist ein Workflow, den ich pro Edwins Kommentar probiert habe:

Erstellen Sie zuerst ein lokales SVN Repo: svnadmin create svn_repo

Als nächstes schaue ich mir mein Git Repo an: git clone git:myNameSpace/myProject

cd in myProject und run:

git svn init -s --prefix=svn/ file:///home/myHome/svn_repo/myProject

git svn fetch

git rev-list --parents master | grep '^.\{40\}$' , um den Hash Ihres Root-Commits nachzuschlagen und gibt nur ein Commit, wie es sollte.

Als nächstes kommt der Hash des leeren Trunk-Commits: git rev-parse svn/trunk

Leider scheitert dieses mit:

fatal: ambiguous argument 'svn/trunk': unknown revision or path not in the working tree. Use '--' to separate paths from revisions

Nun, ich kann nicht viel danach gehen ....

    
Reza Toghraee 04.04.2012, 15:14
quelle

2 Antworten

8

Ich würde Ihnen empfehlen, das mit SubGit in mehreren einfachen Schritten zu migrieren.

%Vor%

Das ist alles. Während Übersetzung SubGit wird versuchen, alle Commits (auch temporär), Zweige, Zusammenführungen, Ignorieren, Termine, EOLs Einstellungen, Tags und so weiter zu erhalten, wie es möglich ist.

Nach der Übersetzung werden die Repositories synchronisiert (jeder Push an Git wird in SVN-Revision übersetzt und umgekehrt). Um die Synchronisierung zu unterbrechen (wenn Sie sie nicht benötigen), führen Sie

aus %Vor%     
Dmitry Pavlenko 12.05.2012, 15:03
quelle
3

--- Bearbeitet, nachdem Details hinzugefügt wurden ---

Haben Sie ein leeres initiales Commit für svn/trunk ausgeführt? Wenn nicht, dann würde es erklären, warum Sie einen Fehler bekommen, dass es in der Geschichte nicht gefunden werden kann.

Die Kommentare (in Kombination)

%Vor%

und

%Vor%

Sagt tendenziell, dass sie eine svn/trunk commit gemacht haben, um einen svn-Konflikt mit einem bereits bestehenden trunk -Verzeichnis zu verhindern. Wenn dies der Fall ist, wird vielleicht Ihr einziger Fehltritt keine svn/trunk später finden?

--- Ursprüngliche Post folgt ---

Haben Sie dies versucht? Dcommit wird nicht ordnungsgemäß funktionieren, bis Sie Ihren Stamm- (oder Zweig-) Verlauf linearisiert haben.

Bitte veröffentlichen Sie die Details Ihrer versuchten Migration. Während das, was Sie gepostet haben, eine nützliche Fehlermeldung ist, wäre es mit der Liste der Schritte, die Sie zum Ermitteln dieses Fehlers verwendet haben, zehnmal nützlicher.

    
Edwin Buck 04.04.2012 15:24
quelle

Tags und Links