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
|
--- contrib/client-side/asvn.orig 2008-01-28 03:24:25.000000000 +0300
+++ contrib/client-side/asvn 2008-06-28 12:10:05.554369000 +0400
@@ -52,7 +52,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
@@ -64,7 +64,8 @@
function basedirname()
{
refname="$1"
- dir="`dirname \"$2\"`"
+ shift
+ dir="`dirname \"$*\"`"
ref="`expr \"$dir\" : \"$refname/\(.*\)\"`"
if [ -z "$ref" ]
then
@@ -111,7 +112,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"
@@ -132,7 +133,7 @@
#
# 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)"`
[ -b "$file" ] && echo -n ' type=b'
@@ -200,10 +201,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]*\)"`
@@ -213,7 +214,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
@@ -234,7 +236,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
#
@@ -320,7 +322,7 @@
# 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.*\)"`
@@ -343,15 +345,16 @@
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"
+# chown $user:$group "$dir/$file"
+ chown $uid:$gid "$dir/$file"
chmod $mode "$dir/$file"
fi
fi
@@ -391,7 +394,7 @@
[ "$ACTION" = "pre" ] && pre_checkin $@
-$SVN $@
+$SVN "$@"
[ $? = 0 -a "$ACTION" = "post" ] && post_checkout $@
|