#!/bin/sh
#
# Do a cvs diff backwards-relative to the current revisions.
#
# Feel free to modify, but please mail mods to
# [EMAIL PROTECTED]
#
# Author: Luke Kendall
#
MYNAME=`basename $0`
USAGE="$MYNAME [delta] CVS-files
where delta is an expression like -1 (the previous revision), -2 (the
revision before the previous one), etc."
if expr "x$1" : "x-[1-9]" > /dev/null
then
delta=`echo "x$1" | sed 's/x-/- /'`
shift
else
delta="- 1"
echo "$MYNAME: No delta provided: -1 assumed." >&2
fi
[ $# = 0 ] && echo "usage: $USAGE" >&2 && exit 1
WH="[ ][ ]*"
cvs stat $@ | grep Repository | \
sed "s/^${WH}Repository revision:${WH}\([0-9.]*\)\.\([0-9]*\)${WH}.*\/\(.*\),v
*\$/\1 \2 \3/" |
while read majver minver file
do
newmin=`expr $minver $delta`
if [ $newmin -le 0 ]
then
echo "Can't work out previous version of $majver.$minver for $file"
continue
fi
cvs diff -r$majver.$newmin -r $majver.$minver "$file"
done
I've called it cvsbkdiff.
You'd say, e.g. cvs diff -2 *.c
It works under Unix and under UWin.
#!/bin/sh
#
# Do a cvs diff backwards-relative to the current revisions.
#
# Author: Luke Kendall
#
MYNAME=`basename $0`
USAGE="$MYNAME [delta] CVS-files
where delta is an expression like -1 (the previous revision), -2 (the
revision before the previous one), etc."
if expr "x$1" : "x-[1-9]" > /dev/null
then
delta=`echo "x$1" | sed 's/x-/- /'`
shift
else
delta="- 1"
echo "$MYNAME: No delta provided: -1 assumed." >&2
fi
[ $# = 0 ] && echo "usage: $USAGE" >&2 && exit 1
WH="[ ][ ]*"
cvs stat $@ | grep Repository | \
sed "s/^${WH}Repository revision:${WH}\([0-9.]*\)\.\([0-9]*\)${WH}.*\/\(.*\),v
*\$/\1 \2 \3/" |
while read majver minver file
do
newmin=`expr $minver $delta`
if [ $newmin -le 0 ]
then
echo "Can't work out previous version of $majver.$minver for $file"
continue
fi
cvs diff -r$majver.$newmin -r $majver.$minver "$file"
done