Ich versuche, ein SVN Repo über mehrere Git Repos zu konvertieren. Bisher habe ich git svn clone svn_repo_project_path
für jedes Projekt in SVN verwendet. Ich habe bemerkt, dass git nicht den SVN-Kopiervorgängen zu folgen scheint, so dass die resultierende Geschichte viel kürzer ist als erwartet. Angenommen, mein SVN Repo sah wie folgt aus:Beibehaltung der Svn Kopie Geschichte beim Konvertieren in Git
Wurzel
- ein
- b
- c
- Eltern-proj
- b
- c
Projekte b
und c
wurden unter parent-proj
als Teil einer Umstrukturierungsanstrengung mit dem Ziel, schließlich zu löschen sie aus ihren alten Standorten unter root vor kurzem kopiert. Wenn ich git svn clone http://svnhost/parent-proj
mache, fehlt dem resultierenden Git-Repo der gesamte Verlauf, der vor dem Verschieben von /b
und /c
stammt.
Ist dies eine Einschränkung von git-svn oder gibt es eine Möglichkeit, diese Geschichte in meinem Repo zu sehen? Aus meiner begrenzten Forschung scheint es, dass die Verwendung der filter-branch
Befehl wie beschrieben in Getting complete history of an SVN repo that's been renamed using git-svn funktionieren kann, obwohl in meinem Fall gibt es mehrere Eltern, die wahrscheinlich Dinge kompliziert. Könnte man zuerst den gesamten Repo klonen und dann neue Repos daraus ausgliedern (mit Filter-Branch?), Wäre das ein besserer Ansatz?
Ich bekomme Schuld-Geschichte aller Dateien, selbst wenn sie Verzeichnisse verschieben. Und mein 'git svn clone' verfolgte auch Projekte außerhalb des geklonten Verzeichnisses (wo sie herstammten). –
@ShadowCreeper: Welche Version von Git hast du benutzt? Ich habe das gleiche Problem wie Patrick – Pylinux
Ich bin mir nicht sicher, mit welcher Version sie geklont wurden. Ich glaube, es war ursprünglich eine Version 1.7 (vor ein paar Monaten mit der damals neuesten Version von debian wheezy). Jedoch habe ich kürzlich eines der Projekte mit einer unordentlichen Geschichte mit v1.8.4 rekloniert und es verhält sich genauso (einige SHAs haben völlig unterschiedliche Bäume). Vielleicht ist die SVN-Server-Version wichtiger? Ich glaube, das ist immer noch am 1.7. –