linux - 如何在 svn 中以 vimdiff 样式查看 svn diff

标签 linux svn unix vim

我开始在 Linux 上使用 Subversion。 svn diff 给出了一个非常神秘的 View ——对眼睛非常、非常不友好。我如何解释它的输出?更重要的是,有没有办法查看 vimdiff 那种简洁风格的差异,两个文件将并排打开?

最佳答案

编辑文件 $HOME/.subversion/config 使其包含以下行:

diff-cmd = <your favorite diff application>

一些 diff 应用程序支持 svn。例如,diff-cmd = meld 应该可以正常工作。但是,vimdiff 不是其中之一。原因是 svn diff 将要比较的文件作为第 6 和第 7 个参数,而不是像往常一样作为第 1 和第 2 个参数进行比较。所以大多数人在这种情况下所做的是:

创建包装器脚本:

#!/bin/sh

/usr/bin/vimdiff ${6} ${7}

保存它,例如,在 $HOME/bin/svndiffwrap.sh

不要忘记让它可执行 chmod +x $HOME/bin/svndiffwrap.sh

让它成为 svn diff 命令:

$HOME/.subversion/config 中:

diff-cmd = /home/<username>/bin/svndiffwrap.sh

注意:一些 svn 客户端不支持使用 $HOME 环境变量的路径。因此指定完整路径很有用。

关于linux - 如何在 svn 中以 vimdiff 样式查看 svn diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7866286/

相关文章:

linux - cURL - 扫描网站的源代码

svn - git-svn 分支

为 C 代码创建 makefile,在没有 ./的情况下运行

unix - 比较列

linux - cron 完成后压缩日志文件以节省磁盘空间 - Ubuntu

c - 32位浮点除法并没有我想象的那么慢

c++ - 为什么库链接器标志有时必须在最后使用 GCC?

c++ - 颠覆 "Working copy locked"问题

python - pysvn 是否允许您以相反的顺序限制日志消息?

linux - 检测 stdout 是否被重定向到管道(而不是文件、字符设备、终端或套接字)?