指定svn 的diff 工具
来源:互联网 发布:淘宝网表带 编辑:程序博客网 时间:2024/06/04 18:36
1.svn diff 的指令内部执行过程
当使用svn diff命令比较某个文件的修改前后时,例如执行以下命令:
$ svn diff -r4420 ngx_http_limit_req_module.c
那么实际会向默认的diff程序发送如下命令:
-u -L ngx_http_limit_req_module.c (revision 4420) -L ngx_http_limit_req_module.c (working copy) .svn/tmp/tempfile.tmp ngx_http_limit_req_module.c
svn官方FAQ中对于svn diff的解释(中文、英文):
当使用一个外部的diff命令时,Subversion会生成一个非常复杂的命令行。第一个参数就是具体的--diff-cmd,然后就是具体的 --extensions (尽管使用空白的 --符号时会忽略扩展),或者如果没有指定--extensions或者--extensions为空的话,就加上‘-u’参数。第三和第四个参 数,Subversion会传递一个“-L”还有第一个文件的标签(例如,“"project_issues.html (revision 11209)”)。第五个和第六个就是另一个“-L”和第二个文件的标签。第七和第八个参数分别是第一个和第二个文件的名称(例 如,“.svn/text-base/project_issues.html.svn-base”和“.svn/tmp /project_issues.html.tmp”)。
2.指定比较工具meld
了解diff的内部调用命令后,那么指定比较工具就容易了。
meld在比较2个文件时,只要知道这2个文件的路径及文件名就可以了,也就是上述diff内部命令中的第7个和第8个2个参数;
我们需要自己另外写一个脚本,让这个脚本作为diff程序,获得diff的内部命令,然后只取其中的第7个和第8个参数,再传给指定的工具,这样就能解决参数多的问题了。脚本(diffwrap.sh)如下:
#!/bin/sh# 去掉前5个参数shift 5# 使用vimdiff比较meld "$@"
3.修改svn的配置文件
修改~/.subversion/config,找到如下配置行:
# diff-cmd = diff_program (diff, gdiff, etc.)
将上面那个脚本的路径添加进去就行,例如修改为
diff-cmd = /usr/local/bin/diffwrap.sh
以后,使用svn diff命令就会默认打开指定的工具比较2个文件了。
参考文档:
http://www.cnblogs.com/zhouej/archive/2012/02/09/2343756.html
- 指定svn 的diff 工具
- svn diff指定bcompare
- 用vimdiff 作为svn diff 的代码比较工具。
- Linux/Unix 下 替代svn diff的可视化工具
- 使用vimdiff作为svn diff的查看代码工具
- ubuntu替换svn diff时的比较工具
- Linux/Unix 下 替代svn diff的可视化工具
- Linux/Unix 下 替代svn diff的可视化工具
- 使用vimdiff作为svn diff的查看代码工具
- 使用vimdiff作为svn diff的查看工具
- svn diff的使用
- DIFF工具的使用
- svn查看文件的diff
- 【svn】svn的diff命令用法详解
- 如何配置vimdiff作为svn diff的查看代码的工具
- Linux的SVN——RapidSVN及其diff与edit工具配置
- meld代替svn默认的diff工具(已经验证过,功能OK)
- Diff/Patch 工具的使用
- Cookie,升级版的Arduino
- 图的基本操作(基于邻接矩阵):图的构造,深搜(DFS),广搜(BFS)
- malloc/free 和 new/delete 的区别
- 要面子的人不是果粉
- 有关android编译过程中的网址记录
- 指定svn 的diff 工具
- DailySentence每日一句
- Google翻译逆天了
- solr3.4源代码学习笔记(一)
- 对程序员的培养
- POJ2965高消+搜索
- 爱情,这种高级玩意儿--一个码农的自白
- hdu 3576 Elevators in Jiayuan Students' Apartment(DP)
- c memmove memcopy strcpy学习