如何在“hg com”期间获得mercurial来显示差异?

时间:2010-04-21 13:22:07

标签: mercurial diff

有没有办法配置hg com,以便在外部编辑器中弹出的提交消息文件中,而不是仅显示哪些文件已更改(在HG:行中),它​​实际显示完全差异?我宁愿查看输出并在我的文本编辑器中同时编写提交消息,而不是事先单独在命令行上执行hg diff

3 个答案:

答案 0 :(得分:5)

截至2016年,可以使用committemplate配置选项执行此操作。将以下内容添加到hgrc文件将在您键入提交消息时在编辑器窗口中包含内联的差异。

[committemplate]
changeset = {desc}\n\n
    HG: {extramsg}
    HG: user: {author}\n{ifeq(p2rev, "-1", "",
   "HG: branch merge\n")
   }HG: branch '{branch}'\n{if(currentbookmark,
   "HG: bookmark '{currentbookmark}'\n")  }{subrepos %
   "HG: subrepo {subrepo}\n"              }
   {splitlines(diff()) % 'HG: {line}\n'}

请参阅hg help hgrc并搜索committemplate以获取更多信息。

答案 1 :(得分:2)

Mercurial没有将其作为内置功能,但在编辑器中很容易模拟(由提交启动)。

以下是使用VIM的示例:https://www.mercurial-scm.org/wiki/DiffsInCommitMessageInVIM

hgeditor脚本https://www.mercurial-scm.org/hg/hg-stable/raw-file/tip/hgeditor提供了更多示例。

基本的主旨是:

  1. 在编辑器启动运行hg diff重定向到临时文件
  2. 让你的编辑器加载提交消息文件和diff

答案 2 :(得分:1)

TortoiseHg开箱即用:提交消息的顶部面板及其下方,左侧窗格列出受影响的文件,右侧窗格显示差异,一个接一个。