X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-fetch.sh;h=b4325d9d98589bf7823174318b431197d6b896c6;hb=070879ca93a7d358086f4c8aff4553493dcb9210;hp=73e57bd784c37b950219819fb2e025da8933aab6;hpb=78ff5cf6b5595fa3ae291fa9ee3595b7c7cc624a;p=git.git diff --git a/git-fetch.sh b/git-fetch.sh index 73e57bd7..b4325d9d 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -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