rpmsafe: realpath fixes
[nethome.git] / bin / cvsbranchdiff
1 #! /bin/sh
2 #
3 #       $Id$
4
5
6 if [ $# = 0 ];then
7         echo 'currentdir == CVS (old) version; $1 == dir w/new version; [$2 == "print"]'
8         exit 1
9         fi
10
11 t=/tmp/cvsbranchdiff.$$
12 trap 'rm -rf $t' EXIT
13 rm -rf $t
14 mkdir $t
15 function findnice
16 {
17         find "$1" -not -regex '.*/CVS\(\|/[^/]+\)$' '(' '!' -type d -o -printf "%P/\n" ')' '(' '!' -type f -o -printf "%P\n" ')'|sort
18 }
19 (findnice .   ;echo "/") >$t/old
20 (findnice "$1"         ) >$t/new
21 diff -U 999999 $t/old $t/new|sed -e '1,/^@@.*@@$/d' >$t/diff
22 if [ "$2" = print ];then
23         grep '^[+-]' $t/diff
24         exit 0
25         fi
26 echo '#! /bin/sh'
27 echo 'set -ex'
28 sed \
29                 -e 's#^[+]\(.*\)/$#mkdir '\''./\1'\''; cvs add -kk '\''\1'\''#' \
30                 -e 's#^[+]\(.*[^/]\)$#cp -p '\'"$1"'/\1'\'' '\''./\1'\''; cvs add -kk '\''\1'\''#' \
31                 -e '\#^[-]\(.*\)/$#d' \
32                 -e 's#^[-]\(.*[^/]\)$#cvs remove -f '\''\1'\''#' \
33                 -e '\#^[ ]\(.*\)/$#d' \
34                 -e 's#^[ ]\(.*[^/]\)$#cmp -s '\'"$1"'/\1'\'' '\''./\1'\'' || cp -p '\'"$1"'/\1'\'' '\''./\1'\''#' \
35                 <$t/diff
36 echo 'echo done'