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