我需要一个 Linux (Ubuntu Karmic) 的 GUI 程序,例如差分,它可以并排显示 2 个文件,并突出显示不同的行,并且它在命令行上接受多个文件对,但一次只显示一个文件对,并允许我通过按键跳转到下一个或上一个文件对。哪个程序最适合这个?
我试过了差分和融合,但在命令行上似乎无法为这些文件指定超过 2 个文件。
答案1
我也一直在与 TkDiff 多对差异作斗争。到目前为止,我只得到了非常无用的答案:
Error: you specified 6 file(s) and 0 revision(s)
...但我会在这里添加我的经验和一些注释。
Perforce 在工作中已经为我做了正确的事情。
以下是ps
Perforce 多对 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/file1
与bar/file1
、foo/file2
与bar/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