【问题标题】:Is it possible to edit a summary after a commit using TortoiseHg?是否可以在使用 TortoiseHg 提交后编辑摘要?
【发布时间】:2010-08-18 09:45:42
【问题描述】:

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

【问题讨论】:

标签: tortoisehg


【解决方案1】:

使用 mercurial 队列将变更集转换为补丁,然后剥离这些变更集并将补丁重新应用回您的存储库。

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

  • 启用 Mercurial Queues 扩展 (MQ)
  • 右键单击并为每个更改集选择Import Revision to MQ,以将它们转换为补丁队列中的补丁
  • 从视图菜单启用补丁队列窗口
  • 选择补丁队列中的Un-apply All Patches箭头以剥离变更集
  • 编辑 .hg/patches 中的补丁文件
  • 选择应用所有补丁
  • 右键单击补丁并选择完成应用关闭队列

【讨论】:

  • 这很好用。与其他建议一样,它必须在推送之前完成
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    Phil - 我将发布我刚刚在 this question 上发布的相同答案(询问您的答案):

    一种合适的方法是使用 histedit。 Histedit 允许您删除、修改、合并或以其他方式编辑您之前的提交。

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

    > hg histedit <rev>

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

    > hg histedit --continue

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

    【讨论】:

    • 您也可以将pick 更改为mess(而不是edit),它只允许您编辑摘要消息。
    【解决方案4】:

    从答案来看..所以总结答案是,

    是的,如果最后一个操作是提交相关变更集(在这种情况下,请执行 rollback 命令),并且

    ,如果相关变更集已被推送或后续签入已被推送,这是不可能的,不是开箱即用的(没有 mq 扩展和大量繁琐的工作)制作。

    我发布这个答案是因为其他答案没有承认“不”,只有“如果”。 :) 随意投反对票,我只是想在这里说明推论。

    【讨论】:

      【解决方案5】:

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

      所以你可以在命令行上这样做:

      hg commit --amend
      

      另见Mercurial: how to amend the last commit?

      我还没有弄清楚如何在 TortoiseHg 中做到这一点。

      【讨论】:

        【解决方案6】:

        如果您提交但未推送,则可以使用回滚上次提交

        hg rollback
        

        我不确定这个功能是否在 TortoiseHG 中实现,但是你总是可以打开控制台,去 repo 并自己输入这个命令。

        【讨论】:

          【解决方案7】:

          TortoiseHG 只要你没有推过:

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

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

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

          你来了。

          【讨论】:

            猜你喜欢
            • 2012-01-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-02-08
            • 1970-01-01
            • 1970-01-01
            • 2010-10-10
            相关资源
            最近更新 更多