【问题标题】:git commit --verbose equivalent in mercurial?git commit --verbose 在 mercurial 中等效?
【发布时间】:2012-10-27 04:42:29
【问题描述】:

在 git 中,我可以执行“git commit --verbose”来在消息编辑器中显示差异。我在 mercurial 中看不到任何选项。是否有一个 mercurial 插件可以向我显示消息编辑器中的差异或类似的东西?

【问题讨论】:

    标签: git mercurial


    【解决方案1】:

    简短回答:在 mercurial 中没有 git commit --verbose 等效项,但可以破解它。

    编辑文本是硬编码在mercurial source中的,所以没有插件或配置可以直接改变它。

    您能做的最好的事情就是破解 hgrc 中的 ui.editor 设置,直接将文本添加到编辑器中。我制作了一个名为 hg-commit-editor 的脚本:

    #!/bin/sh
    echo 'HG: ------------------------ >8 ------------------------' >> $1
    hg diff >> $1
    editor $1
    exit $?
    

    然后在我的 hgrc 中将其设置为我的提交编辑器:

    [ui]
    editor = hg-commit-editor
    

    这会将“hg diff”的输出附加到编辑文本文件底部的特殊行 (source) 之后,因此它不包含在提交消息中。

    【讨论】:

    • 一开始没有看到你的答案。在我的回答中提到的stackoverflow.com/questions/4291826/… 上建立了良好的反馈。 +1
    • 是的,你的回答和那里的链接让我开始了,然后我把这些信息拼凑在一起。我唯一不喜欢这种方法的是,如果他们开始将 ui.editor 用于其他目的,例如启动配置编辑器,那么这会导致问题。
    • 我认为您的方法没有问题,它是一个 local 配置,带有编辑器的包装器。看起来不错。
    • 哦,没关系,因为 ui.editor 仅用作提交消息编辑器,但请尝试例如运行“hg-commit-editor .hg/hgrc”,并注意行为是多么奇怪。如果 mercurial 的任何扩展或未来版本试图在除提交消息文件之外的任何内容上使用此编辑器,它会变得很难看。
    • 是的。我想,在这种情况下,您必须扩展 Mercurial 才能定义 ui.commit.editor ;-)
    【解决方案2】:

    不是直接的,但你可以结合:

    所以:生成一个包含正确信息的文件(要推送的文件列表)作为提交消息。

    【讨论】:

    • 我不确定这对我想做的事情有帮助。我不希望差异信息 成为 提交消息,我只想在我 编写 提交消息时看到它。 “git commit --verbose”显示一个编辑器,但在行下方包含“git diff”的输出以供参考。 "hg commit -l" 阻止显示任何编辑器。
    • 第一个要点也不相关。 “hg commit -l”无能为力。不过,我在“如何自定义'提交消息文件'”中找到了一些有用的东西。
    【解决方案3】:

    最简单的解决方案是下载this(使用左侧的raw 链接),将其放入您的$PATH,然后将HGEDITOR 环境变量设置为此脚本。

    在执行hg commit 时,您将在单独的窗口中看到差异。

    另见https://www.mercurial-scm.org/wiki/hgeditor

    @Mu Mind 的脚本应该仍然可以工作,如果您希望它的行为与git commit --verbose 一样接近,可能更可取。

    【讨论】:

      【解决方案4】:

      不完全相同的结果,但最接近的迭代:

      在提交之前你可以hg diff查看WC中的差异,使用alias extension你可以为命令对“hg diff & hg commit”创建别名

      【讨论】:

      • 我不明白...如果我执行“hg diff && hg commit”,那么提交消息编辑器将立即弹出,因此没有时间查看差异。
      猜你喜欢
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 2022-08-19
      • 2012-10-18
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多