Konvertieren SVN-Unterverzeichnis auf Git
Ich würde gerne Graben SVN Git. Meine aktuelle SVN-repository setup-Projekte unter Kofferraum ( /trunk/projecta
, /trunk/projectb
usw. mit tags und Zweige in /tags/projecta-1.0
usw.). Ich würde gern verschiedene Git-repos für jedes dieser Projekte durch zog Sie aus dem SVN-git-svn.
Habe ich erfolgreich gezogen, die gesamte SVN-repo down, um ein lokales Git-repo, aber alle Projekte vorhanden sind, in der gleichen Git-repo jetzt. Ist es möglich, ziehen Sie auseinander, an dieser Stelle?
- Ich habe gehört, dass es bessere-in-the-long-run " - Optionen für das konvertieren von Subversion auf Git als git-svn (weil git-svn ist spezialisiert für in der Lage sein zu Begehen, zurück), aber ich habe keine Quellen zur hand.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist schwierig. Um z.B. die tags für ein Projekt, alle seine tags haben, um unter einer gemeinsamen Verzeichnis, aber Ihre Struktur hat alle Projekte an einem gemeinsamen tag-Verzeichnis.
Vielleicht könntest du verschieben /tags/projecta-1.0 /tags/projecta/1.0 und so weiter, und dann importieren Sie Projekte in git ein zu einer Zeit:
Ich weiß nicht, ob dies funktionieren wird, wie erwartet, so bitte tun dies auf einer Kopie des Repositorys, nicht das original!
Ich hatte vor kurzem dieses problem zu lösen, mit einem einigermaßen komplexen Fall (extrahieren, die utahrle Dateien von BRL-CAD ist insgesamt eine Geschichte, die einen separaten GIT-Projekt) und endete mit svn2git mit einer Regel-Datei. Dies waren meine Schritte nicht sicher, ob es der "richtige" Weg ist, aber es scheint gelungen zu sein, in meinem Fall:
Stellen Sie sicher svn2git installiert ist, sowie subversion und git
(aktivieren git subversion-support, wenn Sie nicht bereits vorhanden sind.) Hinweis
auf, dass es scheinbar mehrere Programme mit dem Projekt-Namen
svn2git - die ich benutzt habe ist dieser hier:
http://www.gitorious.org/svn2git
Dieser Artikel von KDE habe mir für den Anfang:
http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git
Erhalten lokale Kopie des svn-repository. Beachten Sie, dass diese
ist nicht ein Kasse des repository, aber eine vollständige Kopie der
die gesamte SVN-repo-Daten-set. Sourceforge macht dies möglich
mit einem rsync-option - sehen Sie Ihre Dokumente für details: http://sourceforge.net/p/forge/documentation/rsync%20Backups/. Ich bin nicht
sicher, über andere Standorte.
Identität Karte zwischen svn-Committer und git commit-berechtigten
Datei: Konto-Karte
erstellen svn2git Filterregeln zu erfassen, die utahrle Geschichte.
Ich poste den vollständigen utahrle Beispiel hier zeigt, wie
Folgen Sie der Geschichte um zwischen verschiedenen Verzeichnissen, aber
Ich würde erwarten, dass die meisten Fälle wäre das nicht ganz dieses schlechte:
Datei: Regeln
Svn-all-fast-export zu generieren-Archiv (svn_repo ist das Verzeichnis, das
Ihre vollständigen Kopie des subversion-Dateien):
svn-all-fast-export-identity-Karte die Konto-Karte --Regeln Regeln svn_repo
Mithilfe der oben genannten Regeln-Datei, utahrle hält die resultierende git
repository. Verwenden gitk, um zu überprüfen, dass die Geschichte, die wir erwarten, um zu sehen,
tatsächlich vorhanden ist, dann (wenn Sie dieses als online-repo
Quelle Archiv) verwenden Sie standard-sourceforge-Verfahren
für das hochladen eines bestehenden git-repository.
Einem anderen Programm für die einmalige Umstellung von Subversion-repository ist Svn2Git (anders als vdboor Antwort), es hat weniger Abhängigkeiten und haben großartige Arbeit für meine repositories.
Wenn die repository-layout ist Recht Komplex, es gibt ein tool namens
svn2git
was es möglich macht, zu konvertieren, eine komplexe repository mit einem Regelsatz.Können Sie es hier herunterladen: http://gitorious.org/svn2git/
Das Programm kompiliert werden muss, braucht es die Qt, Apache und SVN header-Dateien.