我正在寻找一种比 Mercurial 内置的更好的补丁工具,或者是一种可视化工具来帮助我编辑补丁,以便它们能够被 Mercurial 或 Gnu 补丁所接受。
mercurial wiki 有一个主题HandlingRejects,它显示了修补失败是多么简单。我希望为基于功能分支的功能分支版本控制实施一个基于 mercurial 的工作流程,并依赖于在集成之前导出和审查补丁。在我对这个想法的初步测试中,我的“补丁”和“审查、接受和修改”补丁中最薄弱的环节是补丁拒绝让我失望的方式。
以下是一些常见的 mercurial 补丁导入失败的情况:
对上游 repoA 和功能分支 repoB 的细微更改,其中在两个分支上的某处添加了一行。由于两个分支都有历史记录,因此合并工具应该可以看到“有人在 repoA 中添加了一行,而其他人在 repoB 中添加了一行”。但是,在补丁导入的情况下,这会导致您的存储库中出现补丁导入拒绝和 .rej 文件垃圾,您必须手动修复(通过编辑 .rej 文件直到可以应用它)。
上面的 wiki 页面提到了可以在此处找到的 mpatch 工具。我正在寻找其他更好的合并工具,它们 (a) 与 mercurial 一起工作,并且 (b) 可以处理上面的处理拒绝 wiki 页面中提到的琐碎案例。请注意,mpatch 不适用于我的目的,似乎我需要的东西更像是一个 rebase 工具而不是补丁工具,在我的情况下,我可能必须使补丁工具具有语法感知能力(因此特定于单一编程语言)。
我正在寻找可用于在 Windows 上工作的工具,无论是本机的,还是通过 cygwin 之类的工具。我没有使用 Unix/Linux 环境,尽管我对 Linux/Unix 风格的工具很满意。
我目前没有使用mq
扩展,只是使用 hg export 导出更改范围,并使用 hg import 导入,其余的工作是我自己的发明,但是我已经标记了这个mq
,因为 mq 用户会熟悉这个.rej
处理问题.
此处的相关问题显示了在使用 TortoiseHg 时解决此类问题的方法。