git-branch, git-checkout: autosetup for remote branch tracking
[gitweb.git] / git-fetch.sh
index 851ed6b6466995ef36c02e88a3b1b161f4008471..5ae0d28cc09a0b3935262a542c9811b66eb5b85e 100755 (executable)
@@ -245,6 +245,15 @@ then
        orig_head=$(git-rev-parse --verify HEAD 2>/dev/null)
 fi
 
+# Allow --notags from remote.$1.tagopt
+case "$tags$no_tags" in
+'')
+       case "$(git-config --get "remote.$1.tagopt")" in
+       --no-tags)
+               no_tags=t ;;
+       esac
+esac
+
 # If --tags (and later --heads or --all) is specified, then we are
 # not talking about defaults stored in Pull: line of remotes or
 # branches file, and just fetch those and refspecs explicitly given.
@@ -379,9 +388,16 @@ fetch_main () {
     ( : subshell because we muck with IFS
       IFS="    $LF"
       (
+       if test -f "$remote" ; then
+           test -n "$shallow_depth" &&
+               die "shallow clone with bundle is not supported"
+           git-bundle unbundle "$remote" $rref ||
+           echo failed "$remote"
+       else
          git-fetch-pack --thin $exec $keep $shallow_depth $no_progress \
                "$remote" $rref ||
          echo failed "$remote"
+       fi
       ) |
       (
        trap '