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 --stdlayoutOption 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-svnFü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 svndenkt, 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 dcommitHalten 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 initoder git-svn clone) Dadurch entfällt die Notwendigkeit, Ihren lokalen Niederlassungen ein Suffix hinzuzufügen.
show-ignoreFehler auftreten, versuchen Sie esgit svn show-ignore -i trunk