Я проверил хранилище SVN с помощью GIT SVN. Теперь мне нужно проверить одну из веток и отследить ее. Какой лучший способ сделать это?
Я проверил хранилище SVN с помощью GIT SVN. Теперь мне нужно проверить одну из веток и отследить ее. Какой лучший способ сделать это?
Ответы:
Создайте git-клон, включающий ваш ствол Subversion, теги и ветви с
git svn clone http://svn.example.com/project -T trunk -b ветки -t теги
--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 checkout -b Waldo-SVN Remotes / Waldo
Суффикс -svn позволяет избежать предупреждений вида
предупреждение: refname 'waldo' неоднозначно.
Чтобы обновить ветку 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 пульты / mybranch
Для ветвей, от которых вы намереваетесь git svn dcommit
, сохраните их истории линейными!
Вам также может быть интересно прочитать ответ на связанный вопрос .
--prefix=svn/
при выполнении git-svn init
или git-svn clone
) Это избавит от необходимости добавлять суффикс в ваши локальные филиалы.
show-ignore
ошибки выходят, попробуйтеgit svn show-ignore -i trunk