summaryrefslogtreecommitdiff
path: root/devel/subversion-freebsd/files/patch-contrib--client-side--asvn
blob: 07f339d29ed5aa93756d66e628165bffe6c06d5d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
--- 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