在 git 中,我可以执行“git commit --verbose”来在消息编辑器中显示差异。我在 mercurial 中看不到任何选项。是否有一个 mercurial 插件可以向我显示消息编辑器中的差异或类似的东西?
4 回答
简短的回答:在 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)之后,因此它不包含在提交消息中。
不是直接的,但你可以结合:
“ Mercurial:命令行上的多行提交消息? ”
hg commit -l filename.txt
(这将在不打开编辑器的情况下提交)- “我如何自定义生成的'提交消息文件'
hg commit
? ”
使用您刚刚生成的文本作为提交消息,当您出现编辑器时,您会看到hg commit
。
和: - "在 Mercurial (hg) 中,如果发出“hg push”,您如何查看将被推送的文件列表? ”
hg -q outgoing --style ~/out-style.txt | sort -u
或:
hg outgoing -v |grep files: |cut -c 14- |tr ' ' '\n' |sort -u
所以:生成一个包含正确信息的文件(要推送的文件列表)作为提交消息。
最简单的解决方案是下载这个(使用raw
左侧的链接),将其放入您的$PATH
.,然后HGEDITOR
为该脚本设置环境变量。
执行此操作时hg commit
,您将在单独的窗口中看到差异。
另见https://www.mercurial-scm.org/wiki/hgeditor
@Mu Mind 的脚本应该仍然可以工作,如果您希望它的行为与git commit --verbose
.
不完全相同的结果,但最接近的迭代:
在提交之前,您可以hg diff
在 WC 中查看差异,使用别名扩展您可以为命令对“hg diff & hg commit”创建别名