Я считаю, что в ветвях SVN есть только папки, это просто соглашение. Гит работает с филиалами. При этом подход становится проще.
Как вам нужно получить данные из репозитория SVN, вам нужно будет создать удаленный доступ к нему. Из структуры я вижу, что вам нужно создать ветви с 1 по 3 в вашем репозитории git.
Создать репозиторий Git.
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"
Создать удаленный филиал SVN.
git config --add svn-remote.<BranchName>.url <SVN URL>
git config --add svn-remote.<BranchName>.fetch :refs/remotes/<RemoteName>
для branch1:
git config --add svn-remote.branch1.url https://svnhost/svn/MyRepo/Branch1
git config --add svn-remote.branch1.fetch :refs/remotes/branch1_remote
Выборка данных из SVN branch1:
git svn fetch branch1
Повторите это для других двух ветвей branch2 и Branch3.
Вы можете остановиться прямо здесь, если вы только пытаетесь клонировать. Вам не нужно идти дальше, если вы не хотите работать с репозиторием Git. Google в поддереве git, чтобы знать, почему это может быть правильным решением в вашем случае.
Создание Subtree:
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>
Для вас бонусный вопрос: Попробуйте
git svn clone https://svnhost/svn/MyRepo/Branch2
Это один простой, другой способ следовать выше шаги, и вместо того, чтобы создать три пульта дистанционного управления в то же хранилище создает новый репозиторий каждый раз, а затем добавляет удаленный филиал. Основываясь на вашем требовании, вы можете использовать различные способы Google.
Это однократное преобразование из SVN в Git, а затем используется только Git или вы хотите перевести обратно из Git в SVN? – Vampire
Это разовое преобразование, но я хочу, чтобы иметь возможность перенаправлять новые SVN-записи на мой git-репо. – user1709708