2013-03-05 4 views
2

Я использовал git-svn для работы с репозиторием svn, размещенным на sourceforge. Недавно я обновил проект sourceforge, который привел к изменениям в репозитории svn. Чтобы быть точным, теперь можно получить доступ к новому репозиторию svn с помощью svn + ssh, а старый репозиторий стал доступен только для чтения.git-svn и обновленный svn url

Теперь, в моем локальном каталоге клонов git-svn, я обновил .git/config, чтобы обновить предыдущий URL-адрес с новым. Однако, когда я GIT данные СВН или GIT Svn перебазироваться, я получаю следующее сообщение об ошибке: Невозможно определить вверх по течению информации SVN от работы истории дерева

Кроме того, я создал свежий GIT-SVN клон с помощью следующей команды: git svn init -T trunk -t теги -b ветви svn + ssh: //[email protected]/p/dmtcp/code dmtcp-git

Этот клон отлично работает, и нет проблем с Это. Тем не менее, ссылки отличаются от старого клона.

Чтобы усложнить ситуацию, я сохраняю хранилище git на github, где я нажимаю изменения после того, как они были привязаны к sourceforge svn (по историческим причинам). Все это использовалось для работы с предыдущим URL-адресом sourceforge svn. Но теперь с обновленным репозиторием refs все перепутались, то есть они не совпадают с репозиторием github.

Конечно, я могу сделать «git push -f», чтобы обновить ссылки, но хотел знать, есть ли у кого-то мысли или идеи по исправлению ссылок.

Спасибо!

ответ

1

git svn использует корневой URL-адрес для репозитория svn для получения более чем одного доступа к в этом репозитории. Это также необходимо для определения ветви svn и (по крайней мере, по умолчанию). URL-адреса будут включены в сообщения фиксации. Последняя причина - , почему ваш новый клон показывает все коммиты как разные.

Но вы можете настроить его для продолжения использования старого URL-адреса для других целей при использовании нового URL-адреса для фактического доступа к репозиторию. Вам просто необходимо добавить элемент rewriteRoot в svn-удаленный раздел вашего и установить его на старый URL-адрес для хранилища svn. То, что должно позволить вам продолжать извлекать обновления из svn.

+0

Я читал о rewriteRoot, но не уделял достаточного внимания изучению его цели. Спасибо за объяснение!! (Как только я получу достаточную репутацию, я буду «проголосовать» за ваш ответ :-)) –