还有一个问题:如何让diff看起来像svn diff?但我想要完全相反.我正在尝试使用<和>显示svn diff
显而易见的答案是:
svn diff --diff-cmd /usr/bin/diff file
Run Code Online (Sandbox Code Playgroud)
但当我这样做时,我得到了
/usr/bin/diff: illegal option -- L
Run Code Online (Sandbox Code Playgroud)
所以我这样做
svn diff --diff-cmd /usr/bin/echo file
Run Code Online (Sandbox Code Playgroud)
看看发生了什么.并且它吐出所有这些,我可以看到为什么diff不喜欢它....
-u -L file (revision 11371) -L file (working copy) .svn/text-base/file.svn-base file
Run Code Online (Sandbox Code Playgroud)
那么......我如何让svn实际上使用另一个程序来进行差异?
您的系统上似乎diff安装的版本太旧或与svn想要调用它的方式不兼容.在我的系统中,-L选项是这样定义的:
-L label
--label=label
Use label instead of the file name in the context format and unified format headers.
Run Code Online (Sandbox Code Playgroud)
因此,您应该使用diff命令删除该标志,然后再将其传递给系统的diff.我做了类似的事情,在我的.subversion/configs文件中为diff(和添加颜色)添加一组自定义选项:
diff-cmd=/home/ether/bin/svndiff-w
Run Code Online (Sandbox Code Playgroud)
...程序只是一个简单的shell脚本:
#!/bin/bash
diff=/usr/bin/colordiff
args="-u -wi -U 6 --new-file"
exec ${diff} ${args} "$@"
Run Code Online (Sandbox Code Playgroud)
在使用外部差分和合并工具下的手册中对此进行了更详细的讨论.
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |