aboutsummaryrefslogblamecommitdiff
path: root/devel/subversion-freebsd/files/patch-contrib--client-side--asvn
blob: c8be147d7d770e5edeec9635227790af35f10c04 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                



                                                        
                                                                           


                                                                







                                                                        










                                          



                                                                                         
                                                                                              
       







                                       



                                                                                                                                 
                                                                                                                                      

                                                                                 




















































                                                                                                                    














                                                                          


                                                  
             

                                                             
                                         


                                                               
                                         

                                        

            
  




                                                                                                              
                                                                                                                   


                      






































                                                                      



                                                                          
                                                                               
               






                                    




                                                                                                               
                                                                                                                    


                                                    
                                       




                                  
                                             
                                     
                                                 













































                                                                      








                                                     
--- contrib/client-side/asvn.orig	Tue Jun 15 06:02:44 2004
+++ contrib/client-side/asvn	Mon Sep 11 17:07:04 2006
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/local/bin/bash 
 #-------------------------------------------------------------------------
 #    Author:		Ross Mark (rossm@controllingedge.com.au)
 #    Date:		Tue Mar 11 10:02:57 EST 2003
@@ -46,7 +46,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
 
@@ -58,7 +58,8 @@
 function basedirname()
 {
     refname="$1"
-    dir="`dirname $2`"
+    shift
+    dir="`dirname \"$*\"`"
     ref=`expr "$dir" : "$refname/\(.*\)"`
     if [ -z "$ref" ]
     then
@@ -105,10 +106,10 @@
 
 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
+	updatedirsymlinks $1 "$dirlist"
+	updatedirdevices $1 "$dirlist"
     done
 }
 
@@ -126,15 +127,15 @@
     #
     # 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'
-	[ -c $file ] && echo -n ' type=c'
-	[ -p $file ] && echo ' type=p'
-	if [ -b $file -o -c $file ] 
+	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'
+	if [ -b "$file" -o -c "$file" ] 
 	then
-	    ls -l $file |
+	    ls -l "$file" |
 		sed -e 's/^[-lcpbrdwxXstugoTS]* *[0-9] [^ ]* *[^ ]* *\([0-9]*\), *\([0-9]*\) .*/ major=\1 minor=\2/'
 	fi
 	# In this case file is the full path.
@@ -145,7 +146,7 @@
     #
     # Obtain the currently defined devices
     #
-    $SVN propget $DEV_PROP $dir >$TMPFILE1
+    $SVN propget $DEV_PROP "$dir" >$TMPFILE1
 
     #
     # If the two list are the same then there is nothing to do.
@@ -161,7 +162,7 @@
 	if [ "$CHECKIN" = "true" ]
 	then
 	    # Add the current devices to the property
-	    $SVN propset $DEV_PROP $dir -F $TMPFILE
+	    $SVN propset $DEV_PROP "$dir" -F $TMPFILE
 	else
 	    # Delete all the unwanted devices ie not in TMPFILE1
 	    cat $TMPFILE |while read line
@@ -169,8 +170,8 @@
 		file=`expr "$line" : "file='\(.*\)' mode"`
 		if ! grep -q "file='$file'" $TMPFILE1
 		then
-		    rm $file
-		    deleteignorefile $file
+		    rm "$file"
+		    deleteignorefile "$file"
 		fi
 	    done
 	fi
@@ -178,7 +179,7 @@
 	# There are no devices in this directory
 	if [ "$CHECKIN" = "true" ]
 	then
-	    $SVN propdel $DEV_PROP $dir
+	    $SVN propdel $DEV_PROP "$dir"
 	fi
     fi
 
@@ -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]*\)"`
@@ -205,10 +206,11 @@
 	    # This file is either missing or wrong
 	    # Delete the old and create it anew.
 	    #
-	    rm -f $dir/$file
-	    mknod --mode=$mode $dir/$file $type $major $minor
-	    chown $user:$group $dir/$file
-	    addignorefile $dir/$file
+	    rm -f "$dir/$file"
+	    mknod --mode=$mode "$dir/$file" $type $major $minor
+#	    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
     
     #
@@ -243,7 +245,7 @@
     #
     # Obtain the currently defined symlinks
     #
-    $SVN propget $SYM_PROP $dir >$TMPFILE1
+    $SVN propget $SYM_PROP "$dir" >$TMPFILE1
 
     #
     # If the two list are the same then there is nothing to do.
@@ -259,7 +261,7 @@
 	if [ "$CHECKIN" = "true" ]
 	then
 	    # Add the current symlinks to the property
-	    $SVN propset $SYM_PROP $dir -F $TMPFILE
+	    $SVN propset $SYM_PROP "$dir" -F $TMPFILE
 	else
 	    # Delete all the unwanted symlinks
 	    cat $TMPFILE |while read line
@@ -268,8 +270,8 @@
 		efile="`echo $file |sed -e 's!\([\[\(\$]\)!\\\\\1!g'`"
 		if ! grep -q "file='$efile'" $TMPFILE1
 		then
-		    rm $dir/$file
-		    deleteignorefile $dir/$file
+		    rm "$dir/$file"
+		    deleteignorefile "$dir/$file"
 		fi
 	    done
 	fi
@@ -277,7 +279,7 @@
 	# There are no symlinks in this directory
 	if [ "$CHECKIN" = "true" ]
 	then
-	    $SVN propdel $SYM_PROP $dir
+	    $SVN propdel $SYM_PROP "$dir"
 	fi
     fi
 
@@ -294,10 +296,10 @@
 
 	    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
+	    rm -f "$dir/$file"
+	    ln -s $dest "$dir/$file"
 	done
     fi
 }
@@ -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`"
+	    dir="`basedirname \"$PCWD\" $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 
@@ -382,7 +387,7 @@
 
 [ "$ACTION" =  "pre" ] && pre_checkin $@
 
-$SVN $@
+$SVN "$@"
 
 [ $? = 0 -a "$ACTION" = "post" ] && post_checkout $@