Ich habe keine Dokumentation zu dieser Funktion gefunden, aber es sieht so aus, als ob die git svn-Konfiguration mehrere Abrufeinträge unterstützt. Auf diese Weise können Sie Zweige auch separat hinzufügen, ohne dass Sie Ihrer Konfiguration einen weiteren Remote-SVN-Repository-Eintrag hinzufügen oder Platzhalter verwenden müssen, um alle Zweige eines bestimmten Verzeichnisses abzurufen.
Angenommen, Ihr SVN-Baum ist wirklich böse und hat viele Verzweigungen ohne Logik, wie sie sich befinden, z. B. Verzweigungen und Unterverzeichnisse mit mehr Verzweigungen.
dh
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
und Sie möchten nur einige der Zweige auswählen, die in Ihr Git-Repository aufgenommen werden sollen.
Sie können Ihr Repository zunächst nur mit Trunk ohne zusätzliche Zweige starten:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
Danach sollten Sie folgende Konfiguration sehen:
localhost: elhigu$ git config --get-regexp "svn-remote."
svn-remote.svn.url https://svn.com/MyRepo
svn-remote.svn.fetch trunk:refs/remotes/svn/trunk
Wann immer Sie einen neuen Zweig von MyRepo abrufen möchten, können Sie der Konfiguration einfach neue Abrufeinträge hinzufügen, indem Sie:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
Oder Sie können dieselbe Konfiguration in .git / config bearbeiten
Um die neuen Zweige nach dem Hinzufügen zur Konfiguration abzurufen, führen Sie einfach Folgendes aus:
git svn fetch -r 10000:HEAD
[Bearbeiten] Manchmal scheint es notwendig zu sein, fetch mit dem Parameter --all auszuführen, um neu hinzugefügte Zweige abzurufen:
git svn fetch --all -r 10000:HEAD