Merge branch 'jc/nostat'
[gitweb.git] / git-fetch.sh
index 73e57bd784c37b950219819fb2e025da8933aab6..b4325d9d98589bf7823174318b431197d6b896c6 100755 (executable)
@@ -17,12 +17,20 @@ append=
 force=
 verbose=
 update_head_ok=
+exec=
+upload_pack=
 while case "$#" in 0) break ;; esac
 do
        case "$1" in
        -a|--a|--ap|--app|--appe|--appen|--append)
                append=t
                ;;
+       --upl|--uplo|--uploa|--upload|--upload-|--upload-p|\
+       --upload-pa|--upload-pac|--upload-pack)
+               shift
+               exec="--exec=$1" 
+               upload_pack="-u $1"
+               ;;
        -f|--f|--fo|--for|--forc|--force)
                force=t
                ;;
@@ -40,6 +48,9 @@ do
        -v|--verbose)
                verbose=Yes
                ;;
+       -k|--k|--ke|--kee|--keep)
+               keep=--keep
+               ;;
        -*)
                usage
                ;;
@@ -193,7 +204,7 @@ reflist=$(get_remote_refs_for_fetch "$@")
 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
@@ -309,7 +320,7 @@ fetch_main () {
     ( : subshell because we muck with IFS
       IFS="    $LF"
       (
-         git-fetch-pack "$remote" $rref || echo failed "$remote"
+         git-fetch-pack $exec $keep "$remote" $rref || echo failed "$remote"
       ) |
       while read sha1 remote_name
       do
@@ -358,7 +369,7 @@ fetch_main "$reflist"
 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