應該有在這種情況下沒有樹衝突,除非某些合併跟蹤信息丟失。
爲了檢驗這一點,運行以下命令:
$ svn switch ^/branches/COKE
$ svn mergeinfo --show-revs=merged ^/trunk
這將打印的修正列表從主幹合併到焦炭分公司。當你在主幹處修改FILE1時,你能找到修訂嗎?很可能沒有那個版本。
這是SVN用戶將修改從一個分支合併到另一個分支,但不提交整個工作副本(即包括根目錄)而不是提交合並修改的文件的常見情況。
錯誤:
$ svn merge ^/trunk
--- Merging r5 through r6 into '.':
M file.txt
--- Recording mergeinfo for merge of r5 through r6 into '.':
U .
$ svn commit FILE1
的問題是根目錄存儲的svn:mergeinfo屬性。 Subversion使用這個屬性來跟蹤合併,所以你必須提交整個工作副本。
右:
$ svn merge ^/trunk
--- Merging r5 through r6 into '.':
M file.txt
--- Recording mergeinfo for merge of r5 through r6 into '.':
U .
$ svn commit .
當你試圖主幹合併到焦炭分公司第二次,顛覆檢測FILE1在軀幹和它在焦炭分支修改的同一時間(已刪除第2步)。結果它用樹衝突標記了文件(本地編輯,合併後的傳入刪除)。
如何解決這個問題?
現在,您必須修復分支COKE的合併跟蹤信息。爲了做到這一點重複步驟2 --record,唯一的選擇,指定適當的修訂:
$ svn merge --record-only -cN ^/trunk
--- Recording mergeinfo for merge of r5 through r6 into '.':
U .
$ svn commit .
其中N是FILE1的軀幹你試圖合併修改。
這是一個偉大的回答,很有啓發!感謝您的信息! –