有没有办法将git或Mercurial diff输出传递给GUI Diff工具?

问题描述:

文本中的差异结果起初可能很难习惯。有没有一种方法,以管道将输出到一个可视化差异工具,比如像有没有办法将git或Mercurial diff输出传递给GUI Diff工具?

$ hg diff --visual code.rb 

$ hg diff code.rb | sometool 

,这样的结果可以直观地看到?

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

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

+1

我唯一的抱怨'git difftool'是它为diff中的每个文件打开一个单独的窗口。当有大量文件发生变化时,这很麻烦。我写了一个脚本来允许来自git的目录差异来解决这个问题。它被称为'git diffall',可以在http://github.com/thenigan/git-diffall找到。 – 2010-06-02 16:02:39

在网上搜索信息上hg vdiff。我用它,它工作正常。

+0

这个工作对我来说也是如此。谢谢。 – 2010-06-02 22:44:02

好像下面的工作:

在你的〜/ .hgrc(UNIX/Mac上)或C

:\用户[用户名] \ mercurial.ini,加

[extensions] 
extdiff= 

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

现在你可以做

hg vdiff filename 
hg kdiff filename 

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

其实,你可以添加

cmd.echo = echo 

,并看到回声会回响2名出来,当你做一个

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