幾天前,我在irc.freenode.net上將問題轉發給#mercurial
。 mpm
(Mercurial的作者)給了一個答案(這只是一半的答案,所以我沒有立即在這裏傳遞它)。他說,如果你讓Mercurial自動合併這些文件(並在有衝突的地方插入<<<<
和>>>>
合併標記),可能會做一些事情。
然後使用一個知道這些標記的合併工具:這將讓你一次解決它們,而不是逐個文件地完成它。起點將是merge tool configuration上的頁面。它解釋了
[ui]
merge = internal:merge
將使Mercurial插入合併標記。在這裏我通過製作兩個文件x.txt
和y.txt
來測試它,然後我在兩個克隆中修改了衝突變化。合併只是給了:
% hg merge
merging x.txt
warning: conflicts during merge.
merging x.txt failed!
merging y.txt
warning: conflicts during merge.
merging y.txt failed!
0 files updated, 0 files merged, 0 files removed, 2 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
所有的文件一次處理,我不必確認每個文件,如你所描述的任何東西。
,文件現在包含合併標記是這樣的:
% cat x.txt
foo
<<<<<<< local
hehe
=======
foobar
>>>>>>> other
下一步是找到一個工具,可以採取這樣的文件的目錄樹,讓你解決這些問題。我看着kdiff3,但沒有弄清楚如何使用它來單獨操作一個文件,它似乎非常專注於比較文件/目錄對。
我不知道這半個答案對您有多大幫助 - 也許您在這一點上也陷入了困境?但我希望它可以幫助其他人想要將合併標記插入到所有文件中,然後手動解決衝突。
我對這個問題的措辭有點困惑。 Mercurial中的變更集是不變的歷史片段;這裏IIUC你想要一次合併整個文件樹而不是逐個文件。 – 2014-04-03 06:24:08