freebsd-ports/devel/subversion-devel/files/patch-contrib--client-side--asvn
Lev A. Serebryakov 64c939477f (1) Fix building with latest apache 2.0
(2) Add `asvn' support.
  (3) Add rc.d script for svnserve.

PR:		ports/96967 [1], ports/97457 [2], ports/91970 [3]
2006-05-25 11:17:17 +00:00

146 lines
5.1 KiB
Text

--- contrib/client-side/asvn.orig Tue Jun 15 06:02:44 2004
+++ contrib/client-side/asvn Thu May 18 16:05:43 2006
@@ -36,6 +36,7 @@
#
#
#-------------------------------------------------------------------------
+EDITOR?=vi
SVN=/usr/local/bin/svn
ACTION=""
DEV_PROP="dir:devices"
@@ -46,7 +47,7 @@
TMPFILE2=/tmp/asvn.tmp2.$$
PCWD=`/bin/pwd`
SKIPSVN='\( -name .svn -prune -false \)'
-PRINTDETAILS="-printf \"file='%p' mode=%m user=%u(%U) group=%g(%G)\n\""
+PRINTDETAILS="-printf \"file='%p' mode=%m user=(%U) group=(%G)\n\""
trap cleanup 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
@@ -105,7 +106,7 @@
function recorddirinfo
{
- eval "find $PCWD $SKIPSVN -o \( -type d ! -name .svn -print \)" |while read dirlist
+ eval "gfind $PCWD $SKIPSVN -o \( -type d ! -name .svn -print \)" |while read dirlist
do
updatedirsymlinks $1 $dirlist
updatedirdevices $1 $dirlist
@@ -126,9 +127,9 @@
#
# Obtain the list of devices in this directory
#
- find "$dir" \( \( -type b -o -type c -o -type p \) -print \) -o -type d ! -name "`basename $dir`" -prune | while read file
+ gfind "$dir" \( \( -type b -o -type c -o -type p \) -print \) -o -type d ! -name "`basename $dir`" -prune | while read file
do
- echo -n `find $file -printf "file='%f' mode=%m user=%u(%U) group=%g(%G)"`
+ echo -n `gfind $file -printf "file='%f' mode=%m user=%u(%U) group=%g(%G)"`
[ -b $file ] && echo -n ' type=b'
[ -c $file ] && echo -n ' type=c'
[ -p $file ] && echo ' type=p'
@@ -194,10 +195,10 @@
grep -q "$info" $TMPFILE && continue # This line still matches
file=`expr "$info" : "file='\(.*\)' "`
mode=`expr "$info" : ".*' mode=\([0-9]*\) "`
- user=`expr "$info" : ".* user=\([^(]*\)("`
- uid=`expr "$info" : ".* user=[^(]*(\([0-9]*\) "`
- group=`expr "$info" : ".* group=\([^(]*\)("`
- gid=`expr "$info" : ".* group=[^(]*(\([0-9]*\) "`
+# user=`expr "$info" : ".* user=\([^(]*\)("`
+ uid=`expr "$info" : ".* user=[^(]*(\([0-9]*\)"`
+# group=`expr "$info" : ".* group=\([^(]*\)("`
+ gid=`expr "$info" : ".* group=[^(]*(\([0-9]*\)"`
type=`expr "$info" : ".* type=\(.\)"`
major=`expr "$info" : ".* major=\([0-9]*\)"`
minor=`expr "$info" : ".* minor=\([0-9]*\)"`
@@ -207,7 +208,8 @@
#
rm -f $dir/$file
mknod --mode=$mode $dir/$file $type $major $minor
- chown $user:$group $dir/$file
+# chown $user:$group $dir/$file
+ chown $uid:$gid $dir/$file
addignorefile $dir/$file
done
fi
@@ -228,7 +230,7 @@
#
# Obtain the list of symlinks in this directory
#
- find "$dir" \( -type l -printf "file='%f' dest='%l'\n" \) -o -type d ! -name "`basename $dir`" -prune |
+ gfind "$dir" \( -type l -printf "file='%f' dest='%l'\n" \) -o -type d ! -name "`basename $dir`" -prune |
sort >$TMPFILE
#
@@ -294,7 +296,7 @@
if [ -L $dir/$file ]
then
- [ "`find $dir/$file -printf '%l'`" = "$dest" ] && continue
+ [ "`gfind $dir/$file -printf '%l'`" = "$dest" ] && continue
fi
rm -f $dir/$file
ln -s $dest $dir/$file
@@ -313,37 +315,39 @@
# Find all the directories and files
cp /dev/null $TMPFILE
- eval "find $PCWD $SKIPSVN -o \( \( -type d ! -name .svn \) -o -type f \) $PRINTDETAILS" | while read info
+ eval "gfind $PCWD $SKIPSVN -o \( \( -type d ! -name .svn \) -o -type f \) $PRINTDETAILS" | while read info
do
device=`expr "$info" : "file='\(.*\)' mode"`
info=`expr "$info" : "file='.*' \(mode.*\)"`
+ #echo DEBUG: device vale $device
if [ "$PCWD" = "$device" ]
then
dir="."
file=""
else
dir="`basedirname $PCWD $device`"
- file="`basename $device`"
+ file=`basename "$device"`
fi
# see if the properties have changed.
- if [ "`$SVN propget $FILE_PROP $dir/$file`" != "$info" ]
+ if [ "`$SVN propget $FILE_PROP \"$dir/$file\"`" != "$info" ]
then
if [ "$CHECKIN" = "true" ]
then
- $SVN propset $FILE_PROP "$info" $dir/$file
+ $SVN propset $FILE_PROP "$info" "$dir/$file"
else
info=`$SVN propget $FILE_PROP "$dir/$file"`
mode=`expr "$info" : "mode=\([0-9]*\) "`
- user=`expr "$info" : ".* user=\([^(]*\)("`
- uid=`expr "$info" : ".* user=[^(]*(\([0-9]*\) "`
- group=`expr "$info" : ".* group=\([^(]*\)("`
- gid=`expr "$info" : ".* group=[^(]*(\([0-9]*\) "`
- if [ "$user" = "" -o "$group" = "" -o "$mode" = "" ]
+# user=`expr "$info" : ".* user=\([^(]*\)("`
+ uid=`expr "$info" : ".* user=[^(]*(\([0-9]*\)"`
+# group=`expr "$info" : ".* group=\([^(]*\)("`
+ gid=`expr "$info" : ".* group=[^(]*(\([0-9]*\)"`
+ if [ "$uid" = "" -o "$gid" = "" -o "$mode" = "" ]
then
echo "property $FILE_PROP not set for $dir/$file"
else
- chown $user:$group $dir/$file
- chmod $mode $dir/$file
+# chown $user:$group $dir/$file
+ chown $uid:$gid "$dir/$file"
+ chmod $mode "$dir/$file"
fi
fi
fi
@@ -364,8 +368,9 @@
if [ "$CHDIR" = "true" ]
then
shift $(($# -1))
- cd $1
- PCWD="$PCWD/$1"
+ WD=`echo $1 | sed "s/\/$//" | awk -F "/" '{print $(NF)}' `
+ cd $WD
+ PCWD="$PCWD/$WD"
fi
recorddirinfo
recordpermissions