公司還在用 CVS,Windows 下有 wincvs 這個方便的軟體,Linux 下,我還是習慣用 console 介面,console 介面下,很多事情就要自己來了。
wincvs 可以選用自訂的軟體來比對。但在 console 下,只能用 cvs diff,cvs diff 的話,只會列出 diff 的結果,沒辦法以視覺化的方式呈現比對結果。
所以只好刻一個,簡單的說就是利用 cvs update -p -r(revision) 將結果輸出到暫存檔,再用 meld 來比對這暫存檔與目前檔案:
#!/bin/bash # author: elleryq # version: 0.1 # distro: ubuntu # dependency: cvsnt if [ ! -e $1 ]; then echo "$1 is not existed, run 'cvs update $1' first!" exit -1 fi [ -z $DIFF ] && DIFF=meld function usage() { prog=`basename $0` echo "Usage:" echo " $prog filename revision" exit 0 } [ -z $1 ] && usage if [ -z $2 ]; then revision=`cvs log $1 | grep head | awk '{print $2;}'` else revision=$2 fi tmpfile=/tmp/$1.$revision cvs update -r $revision -p $1 > $tmpfile $DIFF $tmpfile $1 rm -f $tmpfile exit 0
你可以自訂 diff 軟體,只要設置好 DIFF 這個環境變數即可,預設是 meld。