8

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

4

4 回答 4

7

简短的回答:在 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)之后,因此它不包含在提交消息中。

于 2012-10-27T17:23:57.807 回答
1

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

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

于 2012-10-27T06:13:55.287 回答
1

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

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

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

@Mu Mind 的脚本应该仍然可以工作,如果您希望它的行为与git commit --verbose.

于 2018-06-05T19:22:03.533 回答
0

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

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

于 2012-10-27T08:25:08.577 回答