Ich habe ein svn-Repository mit git svn ausgecheckt. Jetzt muss ich einen der Zweige auschecken und verfolgen. Welches ist der beste Weg, um es zu tun?
Ich habe ein svn-Repository mit git svn ausgecheckt. Jetzt muss ich einen der Zweige auschecken und verfolgen. Welches ist der beste Weg, um es zu tun?
Antworten:
Erstellen Sie einen Git-Klon, der Ihren Subversion-Trunk, Tags und Zweige mit enthält
git svn clone http://svn.example.com/project -T trunk -b branch -t tags
Die --stdlayout
Option ist eine nette Verknüpfung, wenn Ihr Subversion-Repository die typische Struktur verwendet:
git svn clone http://svn.example.com/project --stdlayout
Lassen Sie Ihr Git-Repository alles ignorieren, was das Subversion-Repo tut:
git svn show-ignore >> .git / info / exclude
Sie sollten nun in der Lage sein, alle Subversion-Zweige auf der Git-Seite zu sehen:
Git Branch -r
Angenommen, der Name des Zweigs in Subversion lautet waldo
. Auf der Git-Seite würdest du rennen
git checkout -b waldo-svn fernbedienungen / waldo
Das Suffix -svn dient dazu, Warnungen des Formulars zu vermeiden
Warnung: Refname 'Waldo' ist nicht eindeutig.
waldo-svn
Führen Sie aus, um den Git-Zweig zu aktualisieren
git checkout waldo-svn git svn rebase
Ändern Sie das Git-Repository so .git/config
, dass es einen Subversion-Zweig zu einem Nur-Trunk-Klon hinzufügt
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs / remotes / mybranch
Sie müssen die Gewohnheit des Laufens entwickeln
git svn fetch --fetch-all
um alles zu aktualisieren, was git svn
denkt, sind separate Fernbedienungen. Zu diesem Zeitpunkt können Sie Zweige wie oben erstellen und verfolgen. Führen Sie beispielsweise run aus, um einen Git-Zweig zu erstellen, der mybranch entspricht
git checkout -b mybranch-svn fernbedienungen / mybranch
git svn dcommit
Halten Sie für die Zweige, von denen Sie beabsichtigen , ihre Historien linear!
Möglicherweise möchten Sie auch eine Antwort auf eine verwandte Frage lesen .
--prefix=svn/
wenn Sie dies tun git-svn init
oder git-svn clone
) Dadurch entfällt die Notwendigkeit, Ihren lokalen Niederlassungen ein Suffix hinzuzufügen.
show-ignore
Fehler auftreten, versuchen Sie esgit svn show-ignore -i trunk