#! /bin/sh # # $Id$ if [ $# = 0 ];then echo 'currentdir == CVS (old) version; $1 == dir w/new version; [$2 == "print"]' exit 1 fi t=/tmp/cvsbranchdiff.$$ trap 'rm -rf $t' EXIT rm -rf $t mkdir $t function findnice { find "$1" -not -regex '.*/CVS\(\|/[^/]+\)$' '(' '!' -type d -o -printf "%P/\n" ')' '(' '!' -type f -o -printf "%P\n" ')'|sort } (findnice . ;echo "/") >$t/old (findnice "$1" ) >$t/new diff -U 999999 $t/old $t/new|sed -e '1,/^@@.*@@$/d' >$t/diff if [ "$2" = print ];then grep '^[+-]' $t/diff exit 0 fi echo '#! /bin/sh' echo 'set -ex' sed \ -e 's#^[+]\(.*\)/$#mkdir '\''./\1'\''; cvs add -kk '\''\1'\''#' \ -e 's#^[+]\(.*[^/]\)$#cp -p '\'"$1"'/\1'\'' '\''./\1'\''; cvs add -kk '\''\1'\''#' \ -e '\#^[-]\(.*\)/$#d' \ -e 's#^[-]\(.*[^/]\)$#cvs remove -f '\''\1'\''#' \ -e '\#^[ ]\(.*\)/$#d' \ -e 's#^[ ]\(.*[^/]\)$#cmp -s '\'"$1"'/\1'\'' '\''./\1'\'' || cp -p '\'"$1"'/\1'\'' '\''./\1'\''#' \ <$t/diff echo 'echo done'