Die Situation
Verpflanzung habe ich ein Git-Repo und ein SVN Repo, die beide den gleichen Quellcode halten, aber eine unterschiedliche Geschichte begehen. Das Git Repo hat eine Menge kleiner, gut kommentierter Einreichungen ... während das SVN Repo ein paar riesige Commits mit Kommentaren wie "Lots of stuff" hat. Beide Serien von Commits folgen den gleichen Änderungen, die im Code vorgenommen wurden und sind ungefähr gleichwertig.ein Git Geschichte auf einem SVN-Zweig
Das gewünschte Ergebnis
ich mit Git-SVN wechseln möchte ohne die detaillierte Geschichte aus der aktuellen Git-Repo zu verlieren. Dies sollte durch "Pfropfen" der Geschichte von der Git-Repo auf einen SVN-Zweig des Projekts getan werden (von dem Punkt ausgehend, an dem ich anfing, Git zu benutzen).
Warum würden Sie das tun? (Geschichte)
Vor einer Weile begann ich mit Git zu spielen. Ich begann mit der Einrichtung eines Git Repos in einem Projekt, das ich unter SVN-Kontrolle hatte. Mit einer kleinen Konfiguration hatte ich Git und SVN parallel auf dem gleichen Quellcode arbeiten.
Dies war eine großartige Möglichkeit für mich zu lernen und mit Git zu spielen, während immer noch das Sicherheitsnetz von SVN. Es war im Grunde eine Sandbox mit echten Daten. Ich hatte nicht die Zeit wirklich lernen Git aber ich wollte wirklich damit basteln. Das war eigentlich ein ziemlich guter Weg Git für mich zu lernen.
Zuerst, nachdem ich einige Änderungen vorgenommen hatte, würde ich mich zu SVN und dann zu Git bekennen ... dann mit Git spielen, wissend, dass meine Änderungen sicher in SVN waren. Bald beging ich häufiger Git als SVN ... Nun, SVN Commits sind zu einer lästigen Pflicht gefallen, die ich manchmal tun muss.
Wenn die Differenz zwischen git revert
und svn revert
Lernen war ich SEHR froh, dass ich zum SVN-Repo-Check-in war. Ich hätte fast ein paar Wochen Arbeit verloren, wenn man davon ausging, dass die beiden gleich arbeiteten.
Ich kenne jetzt den Ruhm von Git-SVN und ich benutze es glücklich auf mehreren anderen Projekten. Als ich anfing, wurde mir klar, dass ich mein Git Repo verlieren und ein neues "richtig" mit git-svn init
einrichten musste ... aber nachdem ich eine Weile mit Git gespielt habe, bin ich mir sicher, dass es eine Möglichkeit gibt, das zu hacken Gib Geschichte in SVN.
Leider beginnt der verlinkte Artikel mit dem Klonen des SVN Repo, um den Git Repo zu erstellen. Da beides in meinem Fall erstellt und nicht leer ist, hilft es nicht wirklich. –