Aug 3

使用vim来查看svn diff的内容 不指定

felix021 @ 2010-8-3 20:53 [IT » 软件] 评论(2) , 引用(0) , 阅读(9392) | Via 本站原创 | |
svn的diff很好用,但是还不够好用,因为不像vim,可以很直观地看到两个文件的区别。Google了一下,发现一个还不错的解决方案( http://erik.thauvin.net/blog/news.jsp?date=2006-02-14 ),代码在这里: http://vc.thauvin.net/svn/linux/svndiff/svndiff.sh?view=markup ,但是有点小BUG。我FIX了一下,然后增加了一个小feature,允许在命令行后面跟上 "-r REV" 来指定与最新版本比较的版本号。代码如下:
#!/bin/sh

# svndiff -- svn diff with vimdiff.
#
# Written by Erik C. Thauvin (erik@thauvin.net)
# May 11, 2006
#
# Copyright (C) 2006 Erik C. Thauvin. All rights reserved.
#
# This software is provided "as is" without express or implied warranties.
#
# Permission is granted to use, copy, modify and distribute this software,
# provided this disclaimer and copyright are preserved on all copies. This
# software may not, however, be sold or distributed for profit, or included
# with other software which is sold or distributed for profit, without the
# permission of the author.
#
# $Id$
#
# Modified by felix021 (felix021@gmail.com)
# Aug 3, 2010

PROGNAME=`basename $0`

if [ $# -lt 1 ]; then
    echo "Usage: $PROGNAME <file> [-r REV]"
    exit;
fi

filename=$1
pid=$$
TEMP=/tmp/tmp.$pid.$filename
pv=

if [ $# -gt 3 -a $2 = "-r" ]; then
    pv="-r $3"
fi
svn cat $filename $pv > $TEMP
vimdiff $TEMP $filename
rm -f $TEMP

@p.s. 2010.8.4  昨天给Erik发了封邮件,今天发现他已经把我的修改更新进去了:D



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
snoopy
2010-8-4 09:42
那个确实是用管道来获取输出, 不过可以判断下啊, 如果输出是 term, 则调用 vimdiff, 否则还是走默认的 diff如果只是 svn diff, 那个命令很好用, 麻烦的就是其他工具有调用 svn diff 时可能会导致输出不是终端而出错
felix021 回复于 2010-8-4 10:28
我搜了一下,需要写一个PYTHON脚本包装svn的调用才行,不过还算不错。判断TERM的话,可以在脚本里头判断一下。貌似我没这需求。。。。
snoopy
2010-8-4 00:05
其实可以直接通过改 .subversion/config 来实现的, 这样直接 svn diff 就会召出 vimdiff, 只不过那个改了后在其他一些情况下会出错, 看了你这个觉得有搞头, 回头研究下怎么判断是否输出是终端就可以了
felix021 回复于 2010-8-4 00:35
改config那个不行,那个感觉是用管道来获取diff-cmd的输出,不适合vimdiff这个需要term才行的。判断是否是终端,直接看环境变量中的$TERM就好了吧..?
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]