git svn клонировать конкретные ветки - PullRequest
0 голосов
/ 07 июня 2018

Я хочу перенести мою кодовую базу из svn в git.В моем репозитории слишком много веток.Я только хочу клонировать пару веток и объединить их вместе, чтобы передать их в git.Я хочу избежать клонирования всех веток, так как это занимает много времени.Как мне добиться этого?

После того, как это будет сделано, я хочу периодически получать обновления из этих веток svn, объединять их и обновлять репозиторий git, и svn будет активен в течение определенного периода времени.Было бы напрасной тратой времени, если бы мне пришлось клонировать это снова.Есть ли способ сделать то, что мне нужно?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

git svn fetchclone) имеют --ignore-paths и --include-paths, поэтому вы можете игнорировать некоторые ветви / теги (которые являются путями в репозитории SVN) или включать только соответствующие ветви / теги.Так должно быть что-то вроде

git init from_svn
cd from_svn
git config svn-remote.svn.url "svn://…"
git config svn-remote.svn.include-paths "^/branches/3\." # Include only branches that match name 3.*
git svn fetch svn
0 голосов
/ 08 июня 2018

Я думаю, что инструмент SubGit может быть лучшим решением для вашего случая:

https://subgit.com

Он позволяет переводить данные из SVN в Git, включая и исключая любые ветви / теги или даже каталоги внутри, так что легко получить только те ветки, которые вы хотите иметь в Git.Скажем, если у вас есть филиалы 'branch_1'… 'branch_N', но вы хотите иметь в Git только 'branch_3' и 'branch_4' (вместе с 'trunk'), тогда вы можете установить SubGit следующим образом:

[svn]

trunk=trunk:/refs/heads/master   
branches=branches/branch_3:/refs/heads/branch_3   
branches=branches/branch_4:/refs/heads/branch_4

и только эти ветви появятся в Git.

SubGit поддерживает непрерывное двустороннее зеркало между SVN и Git, поэтому вполне возможно не только получать обновления из SVN, но и отправлять их из Git.Также возможно получать обновления только из SVN, периодически выполняя импорт, но в этом случае ветви, пришедшие из SVN, не должны изменяться в GIt.

...