在linux下,直接利用svn diff命令检察代码的修改是很吃力的,于是在网上搜索到了一个比力好的办理方案,就是让vimdiff作为svn diff的检察代码工具,尤其对于风俗用vim的人来说真的是很方便。 当利用svn diff命令比力某个文件的修改前后时,比方执行以下命令: [code]$ svn diff -r4420 ngx_http_limit_req_module.c[/code]那么实际会向默认的diff步伐发送如下命令: [code]-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 [/code]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”)。 相识了diff的内部调用命令,那么实现用vimdiff作为diff步伐就比力简单了。 vimdiff在比力2个文件时,只要知道这2个文件的路径及文件名就可以了,也就是上述diff内部命令中的第7个和第8个2个参数; 同时也阐明白由于diff内部命令的参数过多导致用--diff-cmd直接调用vimdiff是行不通的(命令如下)。 [code] $ svn diff --diff-cmd vimdiff -r4420 ngx_http_limit_req_module.c[/code]所以,我们需要自己别的写一个脚本,让这个脚本作为diff步伐,获得diff的内部命令,然后只取其中的第7个和第8个参数,再传给vimdiff,这样就能办理参数多的题目了。 脚本(diffwrap.sh)如下: [code] #!/bin/sh # 去掉前5个参数 shift 5 # 利用vimdiff比力 vimdiff "$@"[/code]别的,svn还提供了在设置文件中修改diff默认步伐的功能,这样就不消每次利用svn diff时再指定--diff-cmd了。 修改~/.subversion/config,找到如下设置行: [code]# diff-cmd = diff_program (diff, gdiff, etc.)[/code]将上面谁人脚本的路径添加进去就行,比方修改为 [code]diff-cmd = /usr/local/bin/diffwrap.sh[/code]以后,利用svn diff命令就会默认打开vimdiff比力2个文件了。 效果图: 到此这篇关于利用vimdiff取代svn diff的检察代码工具的文章就先容到这了,更多相关vimdiff 代码比力内容请搜索脚本之家从前的文章或继续欣赏下面的相关文章,希望各人以后多多支持脚本之家! 来源:https://www.jb51.net/LINUXjishu/734861.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 19:41 , Processed in 0.034122 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.