Frage

ich mit Software arbeiten, die in SVN für die Versionskontrolle gehalten wird. Ich möchte git verwenden (git-svn) aber die Software eine Menge Setup und Konfiguration erfordert, bevor es verwendet werden kann. Es gibt Werkzeuge, die von allen Setup kümmern, einschließlich der Überprüfung aus dem gesamten Code über svn.

die gesamte Dokumentation für git-svn (ich habe in der Lage gewesen zu finden) erfordert eine neue Kasse, mit git-svn.

Gibt es eine Möglichkeit, eine bestehende SVN-Kasse zu konvertieren, so kann es git-svn?

War es hilfreich?

Lösung

Sie können etwas tun:

  1. Sie einen vollständigen Klon des SVN Baum mit git-svn, in ein temporäres Verzeichnis. Stellen Sie sicher, dass Sie genau die gleiche Version wie Ihre bestehende Kasse verwenden.
  2. Bewegen Sie die „.git“ Ordner auf der obersten Ebene der git-svn Kasse in die obersten Ebene des SVN Checkout.
  3. Dann müssen Sie entweder Git sagen, die „.svn“ Verzeichnisse zu ignorieren, oder Sie können sie alle löschen.
  4. Löschen Sie die git-svn Kasse.
  5. So, jetzt können Sie Ihre vorhandenen Dateien mit Git und git-svn manipulieren.
  6. Starten Sie eine „git status“ und hoffen, dass sie sagt, gibt es keine Änderungen.

Andere Tipps

Nein. Ein GIT-Svn clone wandelt das gesamte Repository in git. SVN-Kassen haben nicht das gesamte Repository und können daher nicht aus geklont werden. Dies ist der Hauptvorteil von SVN oder CVS auf ein verteiltes Vermittlungssystem (wie GIT).

Ich nehme an, Sie wahrscheinlich die Geschichte behalten wollen. Doch im Fall, dass Sie (oder jemand anderes, der auf dieser Seite stolpert) Geschichte nicht benötigen, können Sie den „Export“ Funktion verwenden, wie hier erläutert: https://stackoverflow.com/a/419475/2437521 .

Eine andere Möglichkeit, dies zu tun, die nicht die ursprüngliche Subversion-Arbeitskopie nicht verändert und erfordert nicht Sie es zu kopieren, wird unter Verwendung eines Pflasters:

  1. Sie einen vollständigen Klon Ihrer Subversion Baum mit git-svn, in ein neues Verzeichnis, das die Git-Repository sein wird. Stellen Sie sicher, dass Sie genau die gleiche Version wie Ihre bestehende Kasse verwenden. Sie git reset --hard :/r<revision> verwenden können, um es zu zwingen die gleiche Revision nach dem Klonen zu sein, wo <revision> die Revision, die die Subversion-Arbeitskopie aktualisiert (siehe dies mit svn info dort).
  2. cd auf Ihre Subversion-Arbeitskopie.
  3. Verwenden Sie svn status um sicherzustellen, dass alle neuen Dateien mit A markiert sind (oder svn add sie hinzufügen verwenden) und alle gelöschten Dateien mit D sind markiert (oder svn rm verwenden, um sie zu löschen).
  4. Ausführen svn diff >patch.diff eine Patch-Datei zu erstellen.
  5. Kopieren patch.diff an die Spitze der zuvor erstellten Git-Repository.
  6. cd an die Spitze der zuvor erstellten Git-Repository.
  7. Ausführen git apply -p0 patch.diff den Patch auf dem Arbeitsbaum der Git-Repository anzuwenden.

Jetzt können Sie die Änderungen mit git status gehen, und git add / git commit sie sie in Ihrem lokalen Repository zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top