|
|
1
3
这个
histedit
你可能在找分机。它允许您在事后编辑提交消息。它还允许您删除或折叠修订,就像
请注意,您必须在要修复的回购上启用和使用扩展;无法编辑远程回购的历史记录。此外,我会非常谨慎地使用这个在中央回购。正如tim post所指出的,多变的变更集并不意味着要被改变。 |
|
|
2
4
如果你还没做 任何东西 否则,您可以对存储库执行“hg回滚”并重新提交。 |
|
|
3
2
我找到了修复提交消息的方法 如果 不正确的变更集仍然是回购协议的尖端。 假设变更集24具有无效注释。还假设file1.txt包含在变更集中。您可以将假更改提交到file1.txt,然后使用不正确的更改集折叠假更改集并提供新消息。 cd centralrepo echo >> file.txt hg commit -m "fake commit" hg collapse 24:25 -m "Bug 14555: LastName field should be mandatory" 这是一个黑客,但它做的工作,并没有留下任何更正的痕迹。创建一个扩展来实现这一点并将其转换为一个易于使用的解决方案可能并不难。 |
|
|
4
2
如果回滚和重新提交不是一个选项,或者您已经将更改推到上游,那么 histedit extension 靠自己是没用的,那么水银 不变的历史 会给你带来麻烦。不管你做什么,你都会留下明显的 poisoned 不需要的变更集可能随时重新注入到存储库中。 修正错误如果您处于这种情况下,那么您有两个选项,这取决于更改传播的距离和更改集的距离。 我以前用过这两种方法。 用同级分支修复并弃用/删除旧分支
如果只有几个变更集,并且由于某种原因无法使用hitsedit扩展,则可以将这些变更集导出为修补程序,然后将它们重新应用于父变更集。对于第一个变更集(要更改其历史记录的变更集),需要使用
这个方法的问题是,最终会有两个分支,其中一个需要永远忽略(在切换回固定分支之前,我将更新到错误的变更集并将该分支标记为已弃用)。
或者,您需要找到包含此分支和
使用子分支修复并在后续更改中合并如果变更集已经传播太远,您可以尝试更新到受影响的修订版,强制虚拟提交,并在该提交消息中解释前一个提交消息的错误。然后,可以将此变更集与当前分支提示合并,以使所有内容都保持最新。 例如,如果错误的消息是“closes 5234”,并且应该是“closes 5324”,则子消息可以是“uncloses 5234,closes 5324”。 |
|
|
5
1
Mercurial中的变更集是故意的 不变的 . 如果你已经提交了,不,你不能更改修订的文件。但是,有一个指南 edit the history ,但要非常非常 非常 小心不要在这个过程中搞砸你的回购协议。 似乎您只想编辑commit消息,您可以这样做。 |