Mercurial:如何在签入后更改变更集摘要?

时间:2010-08-30 22:36:02

标签: mercurial tortoisehg

  

可能重复:
  Is it possible to edit a summary after a commit using TortoiseHg?

在Mercurial中,如果我忘记在签入摘要中包含缺陷#,除了调整平面文件并签入后续变更集以进行评论之外,如何更改先前签入的变更集的摘要在之前的办理登机手续?

使用TortoiseHG。

2 个答案:

答案 0 :(得分:6)

执行此操作的适当方法是使用histedit。 Histedit允许你删除,修改, 合并或以其他方式编辑您之前的提交。

Histedit不附带Mercurial,也不能与TortoiseHg一起使用,但使用非常简单:

> hg histedit <rev>

您想要更改评论的修订版本在哪里。 Histedit将生成一个变更集列表并显示他们的SHA1。除了每个变更集之外,还有一个单词指示一旦关闭文本窗口,hetedit将对每个变更集执行的操作。在您要修改的变更集旁边 - 将“pick”替换为“edit”。关闭文本窗口,然后发出以下命令:

> hg histedit --continue

将出现另一个包含日志消息的文本窗口。将消息更改为您想要的任何内容。如果文件尚未共享,您可以一次性为多个变更集执行此操作。这是对hetedit的一个非常简单的用法,更复杂的用法包括组合提交或删除某些提交的部分

编辑4/24/2011: Mercurial队列似乎是一种更可接受/支持的方式来执行这样的任务。有关mq扩展名的信息,请查看here

答案 1 :(得分:4)

如果您尚未共享更改集,则可以使用rollback和/或strip撤消更改集,然后正确重做它们。 rollback将撤消单个变更集,而strip会删除任意变更集以及所有后代。

同样,如果您已经共享/推送了变更集,请不要这样做,否则会导致混淆。

在TortoiseHG中,回滚位于Recovery dialog,如果启用MQ,则revision context menu中的条带可用。