Подтвердить что ты не робот

Добавить svn repo в существующий репозиторий git?

Я знаю, что вы можете отслеживать репозиторий svn с помощью git с помощью git svn init, однако это необходимо, если вы хотите создать новое репо.

Моя ситуация заключается в том, что у меня уже есть существующий репозиторий git и вы хотите отслеживать ствол репозитория svn, сделав его удаленной ветвью в моем текущем репозитории git.

Любые предложения?

4b9b3361

Ответ 1

После поиска вчера вечером я наконец нашел ответ:

http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/

Кажется, что вам нужно входить и вручную редактировать файл .git/config, чтобы добавить ветвь svn в существующий репозиторий git. Поэтому в соответствии с этими инструкциями мне нужно будет добавить запись для каждой ветки.

Ответ 2

1) Определите новую ветвь в .git/config:

[svn-remote "release-branch"]
        url = svn+ssh://[email protected]/source/branches/mono-2-2/mcs
        fetch = :refs/remotes/git-svn-release-branch

2) Импортируйте ветвь SVN. SVN_BRANCHED_REVISION - это ревизия, когда ветка произошла в SVN.

[~]$ git svn fetch release-branch -r SVN_BRANCHED_REVISION

3) Подключите локальную ветвь Git к удаленной ветке:

[~]$ git branch --track release git-svn-release-branch

5) Оформить заказ и обновить

[~]$ git checkout release
[~]$ git svn rebase

Ответ 3

Вы можете найти SVN_BRANCHED_REVISION, выполнив:

$ svn log --stop-on-copy PATH_TO_BRANCH

Ответ 4

Это на самом деле то, что git svn init делает - другие команды git svn просто объединяют вещи вместе и т.д. Вы можете git svn init и/или скопировать макет репозитория SVN, клонированного с помощью git svn clone, и вы должны просто иметь возможность втягиваться в локальную ветвь или извлекать и так далее. Потратьте некоторое время на man-страницу для git svn, и вам не нужно слишком много хлопотать с чем-то вместе; если вы это сделаете, # git на freenode - хороший ресурс. Таким образом, это должно быть возможно без особых проблем, но я не знаю точно, как это сделать.

Ответ 5

Ответы на этот вопрос (fooobar.com/info/131336/... и fooobar.com/info/131336/...) больше не работают с Git v1.8.3.2 (fooobar.com/info/33392/...). Вы можете сделать это вместо:

1) Определите новую ветвь в .git/config:

[svn-remote "release-branch"]
   url = svn+ssh://[email protected]/source/branches/mono-2-2/mcs
   fetch = :refs/remotes/git-svn-release-branch

2) Импортируйте ветвь SVN. SVN_BRANCHED_REVISION - это ревизия, когда ветка произошла в SVN.

$ git svn fetch release-branch -r SVN_BRANCHED_REVISION

3) Создайте ветвь и подключите локальную ветвь Git к удаленной ветке:

$ git checkout -b release refs/remotes/git-svn-release-branch

5) Обновить

$ git svn rebase