起初有一個文件base.c
,而該文件是在只有一個分支Base
庫。
Base
被分支以形成Extended
-分支。然後,這個新分支對base.c
進行了一些更改。
如果在的文件Base
中修復了錯誤,則它們將合併到Extended
。
事實證明,在Extended
分支中添加太多內容到base.c
並不是一個好主意,因此文件被複制到ext.c
。然後,從base.c
和Base
功能從ext.c
刪除大多數Extended
添加。所以在這一點base.c
在Extended
是非常類似於Base
。
問題:
當文件被分割,水銀獲悉,ext.c
是base.c
副本,因爲他們有着共同的歷史。不幸的是,這不是一個好主意。
現在,如果錯誤被固定在Base
分支合併爲Extended
,水銀認爲,這些變化應同時適用於base.c
和ext.c
,即使後者是不再有任何相似之處,前者。這使合併非常煩人。
有沒有辦法告訴Mercurial ext.c
應該不再與base.c
一樣?一種解決方案是用新文件替換ext.c
,但不會遵循歷史記錄。
有趣的問題。我假設你用'hg copy'製作了副本? – icabod
是使用'hg copy'。 – user694733
如果你'hg忘記ext.c',然後'hg add'它作爲一個新文件,你可能會斷開連接......但是這樣你就會失去所有的歷史記錄。但是,您可以添加一個_earlier_版本的'ext。(也許甚至在重命名之前),並重播(嫁接)它是歷史。 – alexis