summaryrefslogtreecommitdiff
path: root/devel/subversion16/files/patch-contrib--client-side--asvn
blob: 1532ab68f80013d07c15bd494583a27580ca1f73 (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
--- contrib/client-side/asvn.orig	2008-01-28 03:24:25.000000000 +0300
+++ contrib/client-side/asvn	2009-04-29 15:41:48.000000000 +0400
@@ -42,7 +42,7 @@
 # $LastChangedBy: blair $
 # $LastChangedRevision: 29065 $
 
-SVN=/usr/bin/svn
+SVN=/usr/local/bin/svn
 ACTION=""
 DEV_PROP="dir:devices"
 SYM_PROP="dir:symlinks"
@@ -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 $@