Я использую git-svn
для работы с репозиторием SVN. Мои рабочие копии были созданы с помощью git svn clone -s http://foo.bar/myproject
, чтобы моя рабочая копия соответствовала схеме каталога по умолчанию для SVN (соединительная линия, теги, ветки).
Недавно я работал над ветвью, которая была создана с помощью git-svn branch myremotebranch
и извлечена с помощью git checkout --track -b mybranch myremotebranch
. Мне нужно было работать из нескольких мест, поэтому из веток я git-svn dcommit
-ed файлов в репозиторий SVN достаточно регулярно.
После завершения моих изменений я переключился на мастер и выполнил слияние, совершил слияние и попытался выполнить успешное слияние с удаленной стволом.
Кажется, что после слияния удаленное отслеживание для мастера переключилось на ветку, над которой я работал:
# git checkout master
# git merge mybranch
... (successful)
# git add .
# git commit -m '...'
# git svn dcommit
Committing to http://foo.bar/myproject/branches/myremotebranch ...
#
Есть ли способ обновить мастер так, чтобы он следовал за remotes/trunk
, как и до слияния?
Я использую git 1.7.0.5, если это поможет.
Было бы полезно, если бы вы также могли объяснить, почему это произошло, поэтому я могу избежать повторения проблемы. Спасибо!
Edit:
Вот мой текущий .git/config
:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
autocrlf = false
[svn-remote "svn"]
url = http://foo.bar/myproject
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
[branch "mybranch"]
remote = .
merge = refs/remotes/myremotebranch
Итак, кажется, что ствол указывает на правильное место. Однако переход на ветку, а затем обратно к мастеру не помогает; git svn dcommit
в мастер все еще пытается нажать на myremotebranch
.