#!/bin/sh
# Configure your favorite diff program here.
DIFF="/usr/local/bin/vimdiff"
# Subversion provides the paths we need as the sixth and seventh
# parameters.
LEFT=${6}
RIGHT=${7}
# Call the diff command (change the following line to make sense for
# your merge program).
$DIFF $LEFT $RIGHT
# Return an errorcode of 0 if no differences were detected, 1 if some were.
# Any other errorcode will be treated as fatal.
9条答案
按热度按时间xoshrz7s1#
编辑文件
$HOME/.subversion/config
,使其包含以下行:一些diff应用支持svn。例如,
diff-cmd = meld
应该可以正常工作。但是,vimdiff
不是其中之一。原因是svn diff
将文件作为第6个和第7个参数进行比较,而不是像通常那样作为第1个和第2个参数进行比较。所以大多数人在这种情况下会这样做:创建 Package 脚本:
例如,将其保存在$HOME/bin/svndiffwrap.sh
不要忘记将其设置为可执行的
chmod +x $HOME/bin/svndiffwrap.sh
。使用svn diff命令:
在
$HOME/.subversion/config
中:Note:有些svn客户端不支持使用
$HOME
环境变量的路径,所以指定完整路径非常有用.6ovsh4lw2#
发现它在:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/
这篇博客文章直接从SVN book external diff tools示例中获取脚本:
diffwrap.sh
**注意:**这里假设你的
vimdiff
在/usr/local/bin
中,对我来说,在Fedora中是在/usr/bin
中。如果找不到,运行:~/.subversion/config
:mf98qq943#
vimdiff <(svn diff)
<()
被称为process substitution,它从svn diff
的输出创建一个伪文件,供vimdiff
使用。您可以创建一个shell别名,如下所示:
alias svndiff='vimdiff <(svn diff)'
Similar answer
PS -这是我还没有找到的最简单的解决方案;它改变了我的生活(相对而言)!
s3fp2yjn4#
VCSCommand可以为您完成-安装插件,导航到文件,然后按
<Leader>cv
mwyxok5s5#
在svn中使用vimdiff时,我喜欢在statusline中显示版本号和文件,所以我使用以下命令:
svnvimdiff.sh**
说明:
在**$HOME/.subversion/config**中添加/更改diff-cmd
或者内联使用:
mwecs4sa6#
我使用tkdiff和tkcvs来创建svn。
kninwzqo7#
每个文件的基础文件都保存在.svn文件夹中,所以你可以编写一个小脚本来启动vimdiff或mgdiff,以给予.svn文件夹中的路径来比较你的文件,这样就不需要把vimdiff设为svn的默认diff命令.
6ojccjat8#
按照以下步骤操作
1.安装colordiff例如:对于Ubuntusudo apt-get install colordiff
1.现在你可以尝试svn diff output to colordiff:svn diff -r Rev 1:Rev 2文件|颜色差异
1.将以下代码添加到您的bash配置文件(~/.bashrc或~/.bash_profile)中以轻松访问。
svndiff(){ svn diff“${@}”|colordiff }
1.源bash配置文件。
source ~/.basrc现在已经可以使用了...你可以在终端中直接看到svn diff,这是最有效的.
例如:svndiff
jv2fixgn9#
扩展上面xyz的答案,下面两个脚本非常适合我:
File /usr/bin/svndiff:
文件/usr/bin/svndiffwrap.sh:
然后你可以在命令行上做任何事情,比如:
你可以只删除空间,它就像预期的那样工作:
它甚至适用于整个树,并按顺序打开每个文件。