Я проверил репозиторий svn, используя git svn. Теперь мне нужно проверить один из веток и отслеживать его. Каков наилучший способ сделать это?
Оформить удаленную ветку с помощью git svn
Ответ 1
Стандартный макет Subversion
Создайте клон git, который включает в себя соединительную линию Subversion, теги и ветки с помощью
git svn clone http://svn.example.com/project -T trunk -b branches -t tags
Параметр --stdlayout
является хорошим ярлыком, если ваш репозиторий Subversion использует типичную структуру:
git svn clone http://svn.example.com/project --stdlayout
Сделайте ваш репозиторий git игнорируйте все, что делает репо: subversion:
git svn show-ignore >> .git/info/exclude
Теперь вы должны увидеть все ветки Subversion на стороне git:
git branch -r
Скажем, имя ветки в Subversion равно waldo
. На стороне git вы запустите
git checkout -b waldo-svn remotes/waldo
Суффикс -svn должен избегать предупреждений формы
warning: refname 'waldo' is ambiguous.
Чтобы обновить ветвь git waldo-svn
, запустите
git checkout waldo-svn git svn rebase
Начиная с проверки только для внешних линий
Чтобы добавить ветвь Subversion в клон только для внешней линии, измените ваш репозиторий git .git/config
, содержащий
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch = :refs/remotes/mybranch
Вам нужно будет разработать привычку запускать
git svn fetch --fetch-all
чтобы обновить все, что git svn
считает отдельными пультами. На этом этапе вы можете создавать и отслеживать ветки, как указано выше. Например, чтобы создать ветвь git, которая соответствует mybranch, запустите
git checkout -b mybranch-svn remotes/mybranch
Для ветвей, из которых вы намерены git svn dcommit
, сохраняйте их истории линейными!
Дополнительная информация
Вам также может быть интересно прочитать ответ на соответствующий вопрос.