Linux 上多个文件对的视觉差异

Linux 上多个文件对的视觉差异

我需要一个 Linux (Ubuntu Karmic) 的 GUI 程序,例如差分,它可以并排显示 2 个文件,并突出显示不同的行,并且它在命令行上接受多个文件对,但一次只显示一个文件对,并允许我通过按键跳转到下一个或上一个文件对。哪个程序最适合这个?

我试过了差分融合,但在命令行上似乎无法为这些文件指定超过 2 个文件。

答案1

我也一直在与 TkDiff 多对差异作斗争。到目前为止,我只得到了非常无用的答案:

Error: you specified 6 file(s) and 0 revision(s)

...但我会在这里添加我的经验和一些注释。

Perforce 在工作中已经为我做了正确的事情。

以下是psPerforce 多对 diff 正常运行的情况(我已将每个单独的 argv 项移至其自己的行上):

wish
/tools/eng/perforce/tkdiff.tcl
--
:
/tmp/g4-60077/cache/depot/path/to/file1#740
/home/douglasdd/work/src1/path/to/file1
:
/tmp/g4-60077/cache/depot/path/to/file2#15
/home/douglasdd/work/src1/path/to/file2

由此我猜测,Leon 的上述回答中缺少的部分是第一个文件对之前的“--”和“:”。但这还不够。

我们的 TkDiff perforce 版本太旧了(3.0x),所以我尝试使用本地安装的 4.1.x 版本。但目前还没有成功...

手动运行此作品:

wish /tools/eng/perforce/tkdiff.tcl -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2

但手动运行失败:

wish /usr/local/bin/tkdiff -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2

...可怕的是:

Error: you specified 6 file(s) and 0 revision(s)

由此我不禁想知道 Perforce 是否有他们自己定制的 TkDiff 版本??

抱歉,这确实没有帮助。

答案2

尝试安排要比较的文件在不同的目录中具有相同的名称,即foo/file1bar/file1foo/file2bar/file2等进行比较。您可以使用符号链接。然后使用理解比较目录的 diff 工具。Emacs 就是这样一种工具(菜单“工具/比较/两个目录”或M-x ediff-directories)。

答案3

我喜欢kdiff3它可以处理 2 或 3 个文件 - 并且可以比较目录。

答案4

tkdiff 的文档确实很少,但似乎如果你用冒号分隔文件对,它就会执行你想要的比较。例如

tkdiff a.1 a.2 : b.1 b.2 : c.1 c.2

相关内容