svn diff 使用 vimdiff 作为差异比较工具

svn diff 使用 vimdiff 作为比较差异工具


引用的一篇文章说明

One of vim’s nice features is a powerful diff tool that can be used to easily tell the differences between multiple different files. This can be called up at any time by issuing the following:

vimdiff file1.xxx file2.xxx

Subversion’s default diff tool - while effective - lacks a lot of options. Firstly, it simply outputs the results of the diff to standard out. This is limiting for several reasons: you can’t edit the files you’re diffing, so quickly changing code is impossible. There’s also no color or syntax highlighting, so telling at a glance what’s changed is more difficult. Vimdiff solves all these problems, as it drops you into a full instance of vim allowing you to do anything.

Why use svn diff when we can seamlessly integrate vimdiff into the workflow in two simple steps? Let’s get started!

Step 1: The Script

The first thing that needs to be done is to create a simple bash script that will be the wrapper for svn diff. Create the following file on your system named diffwrap.sh:

#!/bin/sh

# Configure your favorite diff program here.
DIFF="/usr/bin/vimdiff"

# Subversion provides the paths we need as the sixth and seventh
# parameters.
LEFT=${6}
RIGHT=${7}

# Call the diff command
$DIFF $LEFT $RIGHT

You can either put it in a system wide folder (/usr/local/bin) or in your own folder. In any event, don’t forget to

chmod a+x diffwrap.sh

Step 2: Make Subversion Use It

Now that the script exists, we have to tell Subversion to use it for diff. Luckily that’s quite easy. Simply edit ~/.subversion/config and find the diff-cmd line inside the [helpers] section. Uncomment it and change it to something like this:

diff-cmd = /path/to/diffwrap.sh

Step 3: Profit!

You’re all done! To see it in action, change directory into a Subversion project with some local changes, and simply diff like normal:

svn diff


关于vimdiff的使用

vim -d a.txt b.txt

vimdiff a.txt b.txt

快捷键 说明
[c 跳转到上一个差异项
]c 跳转到下一个差异项
zo 展开折叠的相同代码
zc 重新折叠
dp 把当前处的差异项复制到另一个文件
do 将另一个文件的差异项复制到当前文件


作者 @AdvocateOS_CoderD

2015 年 02月 12日

时间: 2024-12-22 09:01:25

svn diff 使用 vimdiff 作为差异比较工具的相关文章

使用svn diff的-r参数的来比较任意两个版本的差异

1 svn diff的用法1.1 对比当前本地的工作拷贝文件(working copy)和缓存在.svn下的版本库文件的区别 [plain] view plaincopyprint? svn diff 1.2 对比当前本地的工作拷贝文件(working copy)和任意版本A的差异 [plain] view plaincopyprint? svn diff -rA 比如,以下将对比本地的工作拷贝文件(working copy)和版本94239的差异 [cpp] view plaincopypri

[转]svn diff 替代工具

svn diff 替代工具 http://blog.csdn.net/fudesign2008/article/details/8168811 一. 使用vimdiff替换svn diff: 对于多数linux下的开发者来说,vimdiff对文件差异的展示性显然要大大直观于svn diff.  那么我们能否用vimdiff来替代svn diff呢?所幸的是,svn对此作了考虑,并支持第三方程序作为对比差异.现在我们只需要一个简单的脚本就可以封装好此命令,使之使用第三方程序来做比 较.如下:  1

Mac、Linux更换命令行svn diff为P4Merge、vimdiff

2015-01-21 21:25:52 这里先把那个程序员大神的博客地址贴一下(PS:大神,我不是为了抄袭哦,真是怕自己忘记了),http://www.ccvita.com/445.html,里面还有很多文章,我是顺手搜索到浏览了下,还有大神的减肥照片呢.嘻嘻! 今天学习git的时候,说可以自己定义一个merge和diff程序来替换git diff命令执行时默认的diff程序,正好我最近天天在mac的Terminal上敲打着svn diff,就想尝试能不能把svn的默认diff也替换掉,可是又不

vimdiff||svn diff

使用svn进行开发的过程中,每次提交前我都会使用svn diff查看一次本次提交的内容与版本库中的区别,但是svn diff默认的打印出俩的区别代码很乱,为了能够很好的进行代码对比,在.subversion/config中修改svn diff的执行命令,如下: #!/bin/sh # Configure your favorite diff program here. DIFF="/etc/alternatives/vimdiff" # Subversion provides the

如何使用 vimdiff 来 git diff /svn diff

#git 如何实现vimdiffgit config --global diff.tool vimdiff git config --global difftool.prompt false git config --global alias.d difftool 然后使用 git d 打开对比代码,然后用 :wq 继续比较下一个文件. svn 如何实现vimdiff vim ~/.subversion/config diff-cmd = /usr/local/bin/svndiff #!/bi

Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较推荐使用命令行的,因为命令行是原生的客户端,当熟悉了命令行以后,使用效率并不会比GUI低.而且我是从GUI(Tortoise SVN)转命令行的,刚开始的时候也是吐槽命令行的“非人性化”,但我走出了舒适区,真正使用起命令行后,我才发现了自己之前的想法是肤浅的. 指令别名 指令别名就是给一些常用的指令

Shell命令-文件及内容处理之diff、vimdiff

文件及内容处理 - diff.vimdiff 1. diff:比较两个文件区别 diff命令的功能说明 diff命令用比较文件的差异.diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录. diff命令的语法格式 diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][--help][--left-column][--suppress-com

svn diff 详解

UI版: 如果多人编辑同一段代码,常常容易出现冲突的情况: 如果出现冲突,我们如何解决他呢? 1 可以选择使用自己的文件mime file,也可以使用 他们的文件 their file 2 解决冲突, 而不是逃避. 在上图 Mergerd 部分直接编辑即可: 编辑完毕,然后 选择“Marked as resolved” 即可 圆圈表示空行, — 表示左边的版本的内容 + 表示右边的版本的内容 <=> 表示移动的内容, 这个其实没什么用 灰色部分表示原来是没有的. (左边)褚红色的表示被修改的内

diff与vimdiff命令 Linux详解

在Linux日常工作中有时候会遇到这样的两个命令: diff和vimdiff,这两个命令都是用来比较文件差别的 ① diff 直接上例子吧: 下面我创建一个文件,然后cp一下再修改,然后再做比较: ② vimdiff 这个命令其实和diff一样,可以说是diff的加强版,可以高亮显示出两个文件的不同之处: 还拿上面的例子来讲解: 终端输入:vimdiff test.bak test