Ich glaube, dass in SVN Filialen nur Ordner sind, ist es nur eine Konvention. Git arbeitet tatsächlich mit Zweigen. Damit wird der Ansatz einfacher.
Da Sie die Daten aus dem SVN-Repository abrufen müssen, müssen Sie dafür Remote erstellen. Aus der Struktur sehe ich, dass Sie Branch 1 bis 3 in Ihrem Git-Repository erstellen müssen.
Erstellen Sie Git-Repository.
git init
git config --local --add user.name <Username>
git config --local --add user.email <email>
echo "MASTER" > master
git add master
git commit -m "Dummy commit"
Erstellen Sie Remote von Ihrem SVN-Zweig.
git config --add svn-remote.<BranchName>.url <SVN URL>
git config --add svn-remote.<BranchName>.fetch :refs/remotes/<RemoteName>
für Branch1:
git config --add svn-remote.branch1.url https://svnhost/svn/MyRepo/Branch1
git config --add svn-remote.branch1.fetch :refs/remotes/branch1_remote
Fetch SVN Daten branch1:
git svn fetch branch1
Wiederholen dieses für andere beiden Zweige Branch2 und Branch3.
Sie können hier anhalten, wenn Sie nur versuchen zu klonen. Sie müssen nicht weiter fortfahren, es sei denn, Sie möchten mit dem Git-Repository arbeiten. Google auf git subtree, um zu wissen, warum dies in Ihrem Fall die richtige Lösung sein könnte.
Subtree zu erstellen:
Find last commit id:
git checkout remotes/branch1_remote
git svn log -n 1 --show-commit --oneline
Output: 734713bc047d87bf7eac9674765ae793478c50d3 (This is yout LastCommitId value)
Create subtree in mainline master branch:
git checkout master
git subtree add --prefix=Branch1 <LastCommitId>
Für Sie Bonus-Frage: Versuchen Sie, diese
git svn clone https://svnhost/svn/MyRepo/Branch2
Dieses einfach ist, ist der andere Weg, um die obigen Schritte zu folgen und stattdessen drei Fernbedienungen zu schaffen, in Das gleiche Repository erstellt jedes Mal ein neues Repository und fügt dann die Remote-Adresse Ihrer Filiale hinzu. Basierend auf Ihrer Anforderung können Sie verschiedene Wege googlen.
Geht es um eine einmalige Konvertierung von SVN nach Git und dann wird nur Git benutzt, oder wollen Sie von Git auf SVN zurückkommen? – Vampire
Es ist eine einmalige Konvertierung, aber ich würde gerne in der Lage sein, neuere SVN-Commits an meinen Git-Repo weiterzuleiten. – user1709708