Я сам не пробовал, но на странице man git-svn используются следующие команды для «отслеживания и внесения в ствол управляемого Subversion проекта».
# Clone a repo (like git clone):
git svn clone http://svn.example.com/project/trunk
# Enter the newly cloned directory:
cd trunk
# You should be on master branch, double-check with 'git branch'
git branch
# Do some work and commit locally to git:
git commit ...
# Something is committed to SVN, rebase your local changes against the
# latest changes in SVN:
git svn rebase
# Now commit your changes (that were committed previously using git) to SVN,
# as well as automatically updating your working HEAD:
git svn dcommit
# Append svn:ignore settings to the default git exclude file:
git svn show-ignore >> .git/info/exclude
Это должно работать до тех пор, пока вы не запустили git merge
или git pull
в ветке, из которой планируете выполнить dcommit, как описано ниже. Однако, чтобы быть в безопасности, вы действительно должны прочитать все предостережения на странице руководства git-svn для себя.
Ради простоты и
взаимодействуя с Subversion, это
рекомендовал всем пользователям git svn
клонировать, извлекать и dcommit непосредственно из
сервер SVN, и избежать всего мерзавца
операции клонирования, вытягивания, слияния, выталкивания
между git репозиториями и ветками.
Рекомендуемый метод обмена
код между ветками git и пользователями
git format-patch и git am, или просто
'отправка в хранилище SVN.
Запуск git merge или git pull НЕ
рекомендуется на ветке, которую вы планируете
из-за пользователей Subversion
не может видеть слияния, которые вы сделали.
Кроме того, если вы сливаете или вытягиваете из
мерзавец ветка, которая является зеркалом
Филиал SVN, dcommit может передать
неправильная ветвь.