用vimdiff 作为svn diff 的代码比较工具。

本文详细介绍了如何使用vimdiff作为svndiff的代码比较工具,包括svndiff的真实运行过程和参数解析,以及如何通过编写sh脚本来解决参数过多导致的问题。此外,还提供了在svn配置文件中修改默认diff命令的方法,便于日常使用。
用vimdiff 作为svn diff 的代码比较工具。

甲: 了解一下svn diff 的真实面目
    1. svn diff test.c, 实际上会调用diff 命令,并传递8个命令参数。如下:
    diff                    # diff-cmd
    -u                     # extentions, 若无extentions, 用-u 参数
    -L test.c(revision 4420)        # -L 标志和第一个文件标签
    -L test.c(working copy)            # -L 标志和第二个文件标签
    .svn/tmp/tempfile.tmp            # 第一个文件
    test.c                    # 第二个文件

乙:怎样改变diff-cmd 命令
    所以,用 svn diff --diff-cmd vimdiff test.c 不会成功。
    E282: Cannot read from "-L"
    Press ENTER or type command to continue

    而如下方式可以成功:
    只取其中的第7个和第8个参数,再传给vimdiff,这样就能解决参数多的问题了。

    1. 编写sh 脚本:
    gitserver@gitserver-desktop:/usr/local/bin$ cat mydiff.sh
    #!/bin/bash
    shift 5
    # 使用vimdiff比较
    vimdiff "$@"

    2. 执行命令行命令:
        svn diff --diff-cmd mydiff.sh test.c

丙:更好的实现方式:
    在svn 的配置文件中修改diff 的默认命令,这样就不用每次指定diff-cmd 命令了。
    修改~/.subversion/config,找到如下配置行:
    # diff-cmd = diff_program (diff, gdiff, etc.)
    将上面那个脚本的路径添加进去就行,例如修改为
    diff-cmd = /usr/local/bin/mydiff.sh

enjoy it! you will find more.


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值