我有一个名为“develop”的分支,其中包含一个版本号为500的文件,其中包含a.java和b.java。
步骤 - a.java已从开发中删除,然后被推送(501)。 - 从501创建一个分支(my_branch); - 在my_branch中我添加了一个新版本的a.java和一个新文件c.java;
问题 当我尝试将my_branch与开发合并时,mercurial删除a.java。结果是my_branch与b.java和c.java;
我认为mercurial知道正在删除a.java,并且在没有提示警告的情况下删除该文件,即使我已经在my_branch中再次添加。
如何强制my_branch的文件合并?
答案 0 :(得分:2)
我刚刚尝试了所描述的场景。 mercurial不会删除以前删除的文件的新版本。
重现的步骤:
hg update -C 2
合并两个头导致文件a.txt和b.txt
答案 1 :(得分:0)
我和@ bbaja42在你的描述中缺少一些细节 - 这在正常使用中不会发生。
也就是说,它很容易解决 - 只需在提交合并之前放置您想要的文件 - 合并总是在Mercurial中手动提交。
hg update my_branch
hg merge developing
hg revert -r my_branch a.java
hg add a.java # might be unnecessary, but it can't hurt
hg commit -m 'committed the merge with a.java from my_branch in place'