Java 与MercurialClipse合并时,在命令行合并时会自动解决冲突

Java 与MercurialClipse合并时,在命令行合并时会自动解决冲突,java,eclipse,version-control,mercurial,dvcs,Java,Eclipse,Version Control,Mercurial,Dvcs,我正在和Mercurial打交道,看看它是否适合在我们公司使用。它的一大卖点是合并功能。因此,我一直在尝试创建分支并将它们合并回默认行。被测试的方法包括简单地向一个分支中的单个Java文件添加一个新方法(methodA),并在另一个分支中的同一文件的完全不同的位置添加一个不同的方法(methodB) 当我第一次在Eclipse中使用team->merge选项尝试它时,我发现第一次合并效果很好(即添加了方法A)。当我现在尝试合并第二个分支时,它告诉我必须解决一个冲突。这是非常不幸的,因为我认为这种

我正在和Mercurial打交道,看看它是否适合在我们公司使用。它的一大卖点是合并功能。因此,我一直在尝试创建分支并将它们合并回默认行。被测试的方法包括简单地向一个分支中的单个Java文件添加一个新方法(methodA),并在另一个分支中的同一文件的完全不同的位置添加一个不同的方法(methodB)

当我第一次在Eclipse中使用team->merge选项尝试它时,我发现第一次合并效果很好(即添加了方法A)。当我现在尝试合并第二个分支时,它告诉我必须解决一个冲突。这是非常不幸的,因为我认为这种简单的合并正是Mercurial应该轻松处理的事情

我使用命令行尝试了完全相同的测试,这次效果很好,即两次合并都成功,无需解决冲突。查看eclipse中的控制台输出,它使用以下命令执行合并:

hg -y merge --config ui.merge=internal:fail -r 611ca2784593525cdafd3082b17d3310037a5d58 -f
而当我自己从命令行运行它时,我只需执行以下操作:

hg merge -r 1234

合并策略“internal:fail”的使用是否导致Eclipse中发生这种情况??如果可以,是否可以更改默认行为,使其与在命令行中的工作方式相同?

内部:fail告诉Mercurial不要尝试合并任何内容。有关更多详细信息,请参阅

似乎为mercurial编写Eclipse插件的人都觉得他们可以更好地控制Eclipse中的合并,方法是让mercurial自动无法合并所有内容,然后在Eclipse中进行合并,并在合并文件时调用
hg resolve--mark…


从Mercurial命令行,您将获得处理琐碎合并的
premerge
行为,如果仍然存在冲突,则从您的系统调用该文件类型的优先级最高且在本地系统上可用的工具。

。这里有一个链接,指向HG站点上的提示和技巧。(在撰写本文时,这是提示22)。我看到的唯一选择是使用外部合并工具。我不知道它是干什么的,因为我大部分的汞交互都是用乌龟做的。下一个版本的TortoiseHG非常好,因为它现在是一个工作台,所以可以从一个UI做任何事情。谢谢,我能够通过勾选首选项中的“使用外部合并工具解决冲突”框,让Eclipse插件自动执行简单的合并。不幸的是,您需要使用外部合并工具来让插件也执行premerge行为。理想情况下,我希望获得premerge行为,但仍然使用Eclipse来解决冲突。