Я проверил репозиторий SVN с помощью мерзавца svn. Теперь я нуждаюсь к контролю в одном из ответвлений и отслеживаю его. Который является лучшим способом сделать это?
Создайте 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 - Уолдо
. На стороне 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 / config
своего репозитория git, чтобы он содержал
[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
, сохраняйте их истории линейными!
Вам также может быть интересно прочитать ответ на связанный вопрос .