使用TortoiseHg提交后是否可以编辑摘要?

时间:2010-08-18 09:45:43

标签: tortoisehg

偶尔我会将一些代码提交到存储库,添加注释/摘要,然后阅读摘要并意识到我犯了一个错误或者应该包含更多信息。在TortoiseHg中提交后可以编辑摘要吗?我正在使用1.1版

7 个答案:

答案 0 :(得分:10)

使用mercurial队列将更改集转换为修补程序,然后删除这些更改集并将修补程序重新应用回存储库。

创建补丁后,它们将存储在存储库的.hg / patches文件夹中,您可以在重新应用它们之前对其进行编辑(包括提交消息)。

  • 启用Mercurial队列扩展(MQ)
  • 右键单击并为每个更改集选择导入修订版到,以将其转换为修补程序队列中的修补程序
  • 从视图菜单中启用修补程序队列窗口
  • 选择修补程序队列中的取消应用所有修补程序箭头以删除更改集
  • 编辑.hg / patches中的补丁文件
  • 选择应用所有修补程序
  • 右键单击该修补程序,然后选择完成应用以关闭队列

答案 1 :(得分:7)

如果这是最后一次提交,您可以在提交对话框中按“撤消”按钮(它是hg rollback的接口),然后再次使用新消息提交相同的文件。如果这是树中间的提交,则需要使用mq扩展名来删除所有后续提交并重新应用它们。如果将具有错误摘要的提交推送到公共回购,您应该接受并使用它,因为您不应该更改已发布的提交。

答案 2 :(得分:6)

菲尔 - 我会发布我刚刚在this question上发布的相同答案(在你的后面问到):

这样做的一个合适方法是使用histedit。 Histedit允许您删除,修改,组合或以其他方式编辑以前的提交。

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

> hg histedit <rev>

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

> hg histedit --continue

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

答案 3 :(得分:3)

根据答案来判断......总结答案是,

,如果最后一个操作是有问题的变更集的提交(在这种情况下,执行 rollback 命令),则可能

没有,这是不可能的,不是开箱即用(没有mq扩展和大量的gruntwork),如果有问题的变更集已被推送或后续签到已经制成。

我发布这个答案是因为其他答案不承认'不',只承认'如果'。 :)随意投票,我只是想在这里列出推论。

答案 4 :(得分:2)

hg 2.2刚刚添加了git - 类--amend选项。 (参见hg 2.2 release notes。)

所以你可以在命令行上执行此操作:

hg commit --amend

另见Mercurial: how to amend the last commit?

我还没想出如何在TortoiseHg中做到这一点。

答案 5 :(得分:1)

如果您提交但未推送,则可以使用

回滚上次提交
hg rollback

我不确定TortoiseHG中是否实现了此功能,但您始终可以打开控制台,转到回购并自行输入此命令。

答案 6 :(得分:1)

TortoiseHG,只要你没有推动:

标记最新修订版(待修改),

点击顶部的绿色勾号,就像您要提交一样。

从右侧的“提交”按钮右侧打开菜单三角形,然后选择“修改当前版本”而不是“提交更改”。

你在这里。