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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在“hg com”期间获得mercurial来显示差异?相关的知识,希望对你有一定的参考价值。

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

答案

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

另一答案

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

[committemplate]
changeset = {desc}


    HG: {extramsg}
    HG: user: {author}
{ifeq(p2rev, "-1", "",
   "HG: branch merge
")
   }HG: branch '{branch}'
{if(currentbookmark,
   "HG: bookmark '{currentbookmark}'
")  }{subrepos %
   "HG: subrepo {subrepo}
"              }
   {splitlines(diff()) % 'HG: {line}
'}

有关更多信息,请参阅hg help hgrc并搜索committemplate

另一答案

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. 让你的编辑器加载提交消息文件和差异

以上是关于如何在“hg com”期间获得mercurial来显示差异?的主要内容,如果未能解决你的问题,请参考以下文章

使用mercurial克隆或拉到标记后如何获取标记变更集?

Mercurial:获得分支的精确副本

如何从 Mercurial 克隆中删除工作副本?

如何在应用启动期间获取位置

如何检查某些 Mercurial 遥控器上是不是存在特定版本?

Mercurial hg子存储库问题 - “中止:未知修订版”