Я использую git-svn
для работы с SVN-репозиторием. Мои рабочие копии были созданы с использованием git svn clone -s http://foo.bar/myproject
, поэтому моя рабочая копия следует схеме каталога по умолчанию для SVN (транк, теги, ветви).
Недавно я работал над веткой, которая была создана с использованием git-svn branch myremotebranch
и извлечена с использованием git checkout --track -b mybranch myremotebranch
. Мне нужно было работать из разных мест, поэтому из ветки I git-svn dcommit
-данные файлы в хранилище 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
.