64c939477f
(2) Add `asvn' support. (3) Add rc.d script for svnserve. PR: ports/96967 [1], ports/97457 [2], ports/91970 [3]
146 lines
5.1 KiB
Text
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
|