在Unix上使用xxdiff和svn diff命令

在Unix上使用xxdiff和svn diff命令,unix,svn,Unix,Svn,我试过使用这个命令 svn diff --diff-cmd xxdiff some_file.cpp 但它给了我错误消息“无效选项--u” 在谷歌搜索之后,我尝试使用“扩展”,并将其设置为空白,如下所示: svn diff --extensions "" --diff-cmd xxdiff some_file.cpp 为了摆脱“u”,它起作用了,但是xxdiff抱怨了“-L”选项。如何才能使其正常工作?为了准确了解传递给svn diff的内容,我在本地目录中创建了一个名为“svn xxdif

我试过使用这个命令

svn diff --diff-cmd xxdiff some_file.cpp
但它给了我错误消息“无效选项--u”

在谷歌搜索之后,我尝试使用“扩展”,并将其设置为空白,如下所示:

svn diff --extensions "" --diff-cmd xxdiff some_file.cpp

为了摆脱“u”,它起作用了,但是xxdiff抱怨了“-L”选项。如何才能使其正常工作?

为了准确了解传递给svn diff的内容,我在本地目录中创建了一个名为“svn xxdiff”的单行脚本,该脚本只有一行:“echo$@”,然后按如下方式运行:

svn diff --diff-cmd ./svn-xxdiff some_file.cpp
-u -L some_file.cpp (revision 1234) -L some_file.cpp (working copy) .svn/text-base/some_file.cpp.svn-base some_file.cpp
这表明传递给xxdiff的参数如下:

svn diff --diff-cmd ./svn-xxdiff some_file.cpp
-u -L some_file.cpp (revision 1234) -L some_file.cpp (working copy) .svn/text-base/some_file.cpp.svn-base some_file.cpp
注意:“
some_file.cpp(修订版1234)
”被认为是一个参数,我想这是因为它在“-L”之后,如果我错了,请纠正我

有了这些信息,我创建了一个非常快速的解决方案。在我的svn xxdiff脚本中,我刚刚将“echo$@”更改为:


将该文件弹出到$PATH目录(如/bin/)中,您应该能够将xxdiff与svn一起使用,标题将适当地反映出来。我不确定如何修改此脚本以实现3向差异,我对这些方面的经验较少,但如果其他人希望对此提出修改建议,请执行。

xx svn diff somefile.cpp