#!/bin/sh # get_diff.sh, Version 1.0, Raimar Falke CVS=cvs CVS_FLAGS="-z5 -q" DIFF_FLAGS="-u" LOCALCOPY=GET_DIFF_TREE REPOSITORY=":pserver:freecvs@xxxxxxxxxxxxxxx:/home/freeciv/CVS" MODULE=freeciv HELPER=`pwd`/get_diff_helper.py CMDS=get_diff_cvs_commands mkdir -p $LOCALCOPY cd $LOCALCOPY if [ ! -d "$MODULE" ] then echo 1>&2 "Have to checkout $MODULE" if ! fgrep "$REPOSITORY" $HOME/.cvspass >/dev/null 2>/dev/null then echo 1>&2 "Please login first" exit 1 fi $CVS $CVS_FLAGS -d"$REPOSITORY" checkout $MODULE fi cd $MODULE echo 1>&2 "Updating $MODULE" $CVS $CVS_FLAGS update -dPA >/dev/null echo 1>&2 "Updating log files" find . -type f | grep -v CVS | grep -v "\.LOG$" | while read line do log=$line".LOG" if [ ! -f $log ] || [ ! -s $log ] || [ $line -nt $log ] then echo 1>&2 " Updating log for $line" $CVS $CVS_FLAGS log $line >$log 2>/dev/null if [ $? -ne 0 ] then rm $log fi fi done rm -f $CMDS find . -type f -name "*.LOG" | $HELPER "$@" if [ ! -f $CMDS ] then exit 1 fi echo 1>&2 "Calling cvs diff" rm -f $0_$$.out cat $CMDS | while read line do $CVS $CVSFLAGS diff $DIFF_FLAGS $line >>$0_$$.out done diffstat <$0_$$.out 2>/dev/null echo echo "wc: " `wc <$0_$$.out` echo cat $0_$$.out rm $0_$$.out rm $CMDS