]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule: use "fetch" logic instead of custom remote discovery
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 14 Nov 2020 12:21:30 +0000 (13:21 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 16 Nov 2020 20:54:43 +0000 (12:54 -0800)
Replace a use of the get_default_remote() function with an invocation
of "git fetch"

The "fetch" command already has logic to discover the remote for the
current branch. However, before it learned to accept a custom
refspec *and* use its idea of the default remote, it wasn't possible
to get rid of some equivalent of the "get_default_remote" invocation
here.

As it turns out the recently added "--stdin" option to fetch[1] gives
us a way to do that. Let's use it instead.

While I'm at it simplify the "fetch_in_submodule" function. It wasn't
necessary to pass "$@" to "fetch" since we'd only ever provide one
SHA-1 as an argument in the previous "*" codepath (in addition to
"--depth=N"). Rewrite the function to more narrowly reflect its
use-case.

1. https://lore.kernel.org/git/87eekwf87n.fsf@evledraar.gmail.com/

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-submodule.sh

index 7ce52872b721d0db8f6c7c68a25ec0b0978c4366..d39fd226d8bc78cd949c4c3763ea99a5bb38256f 100755 (executable)
@@ -416,13 +416,15 @@ is_tip_reachable () (
 fetch_in_submodule () (
        sanitize_submodule_env &&
        cd "$1" &&
-       case "$2" in
-       '')
-               git fetch ;;
-       *)
-               shift
-               git fetch $(get_default_remote) "$@" ;;
-       esac
+       if test $# -eq 3
+       then
+               echo "$3" | git fetch --stdin "$2"
+       elif test "$2" -ne ""
+       then
+               git fetch "$2"
+       else
+               git fetch
+       fi
 )
 
 #