【发布时间】:2010-11-26 20:38:23
【问题描述】:
场景:我“继承”了一个程序,保留在 Mercurial 下,该程序仅适用于我的系统,对签入的某些文件进行了特定调整。我不想检查这些调整在。
我最近的解决方案是创建一个包含这些调整的 mercurial 补丁文件 (hg diff > patchfile);当我需要检查我的更改时,我只需反向应用补丁、提交并重新应用补丁。 (如果我完全控制了源代码,我只需将所有这些小调整移动到不受版本控制的单个配置文件中,将“示例”配置文件置于版本控制之下)
不幸的是,虽然 GNU patch 命令支持 --reverse 标志,但它似乎不支持 hg 的多文件差异格式作为单个补丁文件(或者它可能支持,我只是不知道它的开关?)。 OTOH,hg 有自己的 patch 命令可以应用差异,但不支持任何类型的 reverse 标志。
所以我的问题是双重的:
- 应该在 mercurial 中如何做到这一点?当然,坚持“调整补丁”并不是处理这种情况的唯一方法。也许 mercurial 有一个插件或内置的东西,用于这种临时的、不可提交的更改。
- 除了应该怎么做之外,还有什么方法可以将这种反复无常的差异补丁反向应用到这样的反复无常的回购中?在其他情况下,此类功能会很有用。
【问题讨论】: