git-{fetch,peek-remote} handling of --upload-pack

git-peek-remote needs to handle a -u|--upload-pack parameter just like
git-fetch (and git-fetch has to pass it on to git-peek-remote).

(This is actually a follow-up to my previous git-fetch patch.)

Signed-off-by: Michal Ostrowski <mostrows@heater.watson.ibm.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/git-fetch.sh b/git-fetch.sh
index d1659e2..6730346 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -18,6 +18,7 @@
 verbose=
 update_head_ok=
 exec=
+upload_pack=
 while case "$#" in 0) break ;; esac
 do
 	case "$1" in
@@ -28,6 +29,7 @@
 	--upload-pac|--upload-pack)
 		shift
 		exec="--exec=$1" 
+		upload_pack="-u $1"
 		;;
 	-f|--f|--fo|--for|--forc|--force)
 		force=t
@@ -202,7 +204,7 @@
 if test "$tags"
 then
 	taglist=$(IFS="	" &&
-		  git-ls-remote --tags "$remote" |
+		  git-ls-remote $upload_pack --tags "$remote" |
 	          while read sha1 name
 		  do
 			case "$name" in
@@ -367,7 +369,7 @@
 case "$no_tags$tags" in
 '')
 	taglist=$(IFS=" " &&
-    	git-ls-remote --tags "$remote" |
+	git-ls-remote $upload_pack --tags "$remote" |
 	sed -ne 's|^\([0-9a-f]*\)[ 	]\(refs/tags/.*\)^{}$|\1 \2|p' |
 	while read sha1 name
 	do
diff --git a/git-ls-remote.sh b/git-ls-remote.sh
index f699268..2c9a588 100755
--- a/git-ls-remote.sh
+++ b/git-ls-remote.sh
@@ -2,7 +2,8 @@
 #
 
 usage () {
-    echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..."
+    echo >&2 "usage: $0 [--heads] [--tags] [-u|--upload-pack <upload-pack>]"
+    echo >&2 "          <repository> <refs>..."
     exit 1;
 }
 
@@ -11,6 +12,7 @@
     exit 1
 }
 
+exec=
 while case "$#" in 0) break;; esac
 do
   case "$1" in
@@ -18,6 +20,11 @@
   heads=heads; shift ;;
   -t|--t|--ta|--tag|--tags)
   tags=tags; shift ;;
+  -u|--u|--up|--upl|--uploa|--upload|--upload-|--upload-p|--upload-pa|\
+  --upload-pac|--upload-pack)
+	shift
+	exec="--exec=$1"
+	shift;;
   --)
   shift; break ;;
   -*)
@@ -66,7 +73,7 @@
 	;;
 
 * )
-	git-peek-remote "$peek_repo" ||
+	git-peek-remote $exec "$peek_repo" ||
 		echo "failed	slurping"
 	;;
 esac |