hg移植失败 - 如何建议合并?

时间:2010-08-06 10:59:32

标签: mercurial

我的分支2274从默认分支。 Rev.415是第一次提交,它与rev共享一个祖先。 412在默认分支上。

Branch2274是一个错误修复,需要很快合并到默认但是我做了一件非常愚蠢的事情 - 我合并了一个功能分支的变化(在修订版418)

简单来说,我需要撤消rev引起的任何变化。 418.似乎有很多方法可以尝试这种方法,但我很难让它们中的任何一种起作用:

Mercurial队列尝试:

我尝试将转号415,416,417,(跳过418),421,428导入补丁队列,以便将其应用于转425。

问题:tortoisehg只允许我导入转速428,421,但导入417是灰色的,但导入418只是给我错误“abort:无法导入合并修订版418”

移植尝试:

patching file Portal/Instructor/Login.aspx.vb
Hunk #1 FAILED at 18
1 out of 1 hunks FAILED -- saving rejects to file Portal/Instructor/Login.aspx.vb.rej
applying 66b6b089ee01
abort: Fix up the merge and run hg transplant --continue
patch failed to apply

[command interrupted]

Login.aspx.vb在默认情况下已更改,我理解合并失败的原因。

如何“修复”合并?

或者,是否有一种更简单的方式来接受转速。 418并告诉mercurial撤消它在case2274上新提交带来的更改?

1 个答案:

答案 0 :(得分:18)

为了不留下未回答的问题(!),我设法解决了这个问题,最终的答案是没有简单的方法可以自动解决。移植处理补丁,两个文件之间的差异,但没有考虑两个文件的共同祖先,所以很难知道当一个文件被同一个地方的两个人更改时该做什么。

解决方案是在文本编辑器中加载文件并加载.rej文件,该文件列出了补丁的失败部分。我只需将我的添加内容放在代码文件中的合理位置。

运行:

hg transplant --continue

..允许我申请其他补丁。

如果有人愿意花点时间通过一些见解或一些相关链接来扩展这个答案,那么答案就是他们的答案。