我正在使用git-svn
與SVN存儲庫一起使用。我的工作副本已使用git svn clone -s http://foo.bar/myproject
創建,以便我的工作副本遵循SVN(中繼,標記,分支)的默認目錄方案。git-svn:重置跟蹤大師
最近我一直在使用git-svn branch myremotebranch
創建並使用git checkout --track -b mybranch myremotebranch
簽出的分支。我需要從多個地點開展工作,所以從分支機構I 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,如果這是任何幫助。
如果你還可以解釋爲什麼發生這種情況,這將是有用的,所以我可以避免再次發生問題。謝謝!
編輯:
這是我目前的.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
如此看來,樹幹指向正確的位置。但是,切換到分支然後回到主人不會幫助;主人仍然試圖推到myremotebranch
。
'--no-ff'的好處。 +1 – VonC 2010-08-12 18:30:15
爲了澄清,如果我明白,git使用「master」指針所在的提交來決定要提交哪個SVN分支。這就是爲什麼SVN dcommit步驟失敗的原因,因爲完成合並後,'mybranch'和'master'在同一個提交中。該提交最初是由'myremotebranch'SVN分支創建的。 – cmcginty 2010-08-13 10:16:55
我不認爲創建新的合併提交將有助於澄清問題,因爲合併信息在傳播到svn存儲庫時會丟失。 – 2010-08-13 18:51:51