【问题标题】:is there a way to pipe the git or Mercurial diff output to a GUI Diff tool?有没有办法将 git 或 Mercurial diff 输出通过管道传输到 GUI Diff 工具?
【发布时间】:2010-06-01 23:42:47
【问题描述】:

文本中的差异结果一开始可能很难习惯。有没有办法将该输出通过管道传输到可视差异工具,例如

$ hg diff --visual code.rb

$ hg diff code.rb | sometool

这样可以直观地查看结果吗?

【问题讨论】:

    标签: git mercurial diff visual-diff


    【解决方案1】:

    git 有一个"difftool" subcommand,可用于调用外部差异查看器,例如kdiff3.

    这与“外部差异驱动程序”是分开的,例如,如果您更喜欢上下文差异,则可以使用它,例如 some people do

    【讨论】:

    • 我对@9​​87654324@ 的唯一抱怨是它为 diff 中的每个文件打开了一个单独的窗口。当有大量文件更改时,它很麻烦。我编写了一个脚本来允许来自 git 的目录差异来解决这个问题。它被称为git diffall,可以在github.com/thenigan/git-diffall找到。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      在网上搜索hg vdiff 的信息。我用过,效果很好。

      【讨论】:

        【解决方案4】:

        似乎以下方法会起作用:

        在您的 ~/.hgrc (UNIX / Mac) 或 c:\users[您的用户名]\mercurial.ini 中,添加

        [extensions]
        extdiff=
        
        [extdiff]
        cmd.vdiff = opendiff
        cmd.kdiff = kdiff3
        

        现在你可以做

        hg vdiff filename
        hg kdiff filename
        

        opendiff 或 kdiff3 必须是您机器上已安装的工具,或者您可以使用您拥有的任何可视差异工具。

        其实可以加

        cmd.echo = echo
        

        当你执行 a 时,会看到 echo 会回显 2 个文件名

        hg echo filename
        hg echo -r -2 filename         <-- you will see different filenames if that revision exists
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-12-04
          • 2017-08-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-13
          • 2015-02-15
          • 1970-01-01
          相关资源
          最近更新 更多