branch: allow -f with -m and -d
[gitweb.git] / contrib / examples / git-fetch.sh
index c3a200120df636fe8db0f02902d92c351c6c5e2e..554070909cca4d229325a6ca6f401af8bc603cb2 100755 (executable)
@@ -27,7 +27,7 @@ shallow_depth=
 no_progress=
 test -t 1 || no_progress=--no-progress
 quiet=
-while case "$#" in 0) break ;; esac
+while test $# != 0
 do
        case "$1" in
        -a|--a|--ap|--app|--appe|--appen|--append)
@@ -67,7 +67,7 @@ do
                keep='-k -k'
                ;;
        --depth=*)
-               shallow_depth="--depth=`expr "z$1" : 'z-[^=]*=\(.*\)'`"
+               shallow_depth="--depth=$(expr "z$1" : 'z-[^=]*=\(.*\)')"
                ;;
        --depth)
                shift
@@ -127,10 +127,12 @@ then
        orig_head=$(git rev-parse --verify HEAD 2>/dev/null)
 fi
 
-# Allow --notags from remote.$1.tagopt
+# Allow --tags/--notags from remote.$1.tagopt
 case "$tags$no_tags" in
 '')
        case "$(git config --get "remote.$1.tagopt")" in
+       --tags)
+               tags=t ;;
        --no-tags)
                no_tags=t ;;
        esac
@@ -260,12 +262,12 @@ fetch_per_ref () {
       http://* | https://* | ftp://*)
          test -n "$shallow_depth" &&
                die "shallow clone with http not supported"
-         proto=`expr "$remote" : '\([^:]*\):'`
+         proto=$(expr "$remote" : '\([^:]*\):')
          if [ -n "$GIT_SSL_NO_VERIFY" ]; then
              curl_extra_args="-k"
          fi
          if [ -n "$GIT_CURL_FTP_NO_EPSV" -o \
-               "`git config --bool http.noEPSV`" = true ]; then
+               "$(git config --bool http.noEPSV)" = true ]; then
              noepsv_opt="--disable-epsv"
          fi