Git / SVN interop (сохранение историй для обоих репозиториев) - PullRequest
3 голосов
/ 21 марта 2011

Я занимаюсь разработкой программного модуля для приложения, принадлежащего заказчику с процессом разработки на основе SVN.До сих пор я использовал свой собственный репозиторий Git для этого.

Теперь модуль достаточно зрелый, чтобы стать частью клиентского дерева SVN.В прошлом я выполнял некоторую работу на основе git-svn, но никогда с двумя изначально независимыми репозиториями (часть git всегда была клоном, взятым из SVN).

Можно ли «внедрить» отдельный репозиторий git в репозиторий Subversion и позволить также, чтобы его история стала частью репозитория SVN?После этого следует «нормальная» работа с git-svn поверх SVN.

1 Ответ

3 голосов
/ 23 марта 2011

Я бы предложил следующее:

  1. git svn clone хранилище Subversion

  2. Добавьте существующий репозиторий git в качестве удаленного (назовем его mod) в репозиторий git-svn

  3. Получить работу вашего модуля в репозиторий git-svn и оформить заказ в новой ветке:

    git fetch mod && git checkout mod/master -b mod-svn

  4. Перебазировать эту ветку против последней из subversion с помощью git svn rebase. На этом этапе у вас должна быть линейная история со всем от Subversion, за которым следует вся работа вашего модуля.

  5. git svn dcommit для сохранения работы вашего модуля в Subversion

...