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

问题描述 投票:6回答:3

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

mercurial diff
3个回答
1
投票

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


5
投票

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

[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


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. 让你的编辑器加载提交消息文件和差异
© www.soinside.com 2019 - 2024. All rights reserved.