Стандартная раскладка 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 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
, сохраняйте их истории линейными!
Дополнительная информация
Вам также может быть интересно прочитать ответ на связанный вопрос .