submodule: use "fetch" logic instead of custom remote discovery

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>

Ævar Arnfjörð Bjarmason committed Nov 14, 2020 at 13:21 UTC 1c1518071c7fa79de13b8c599d8dbb371950b033
1 file changed +9 -7
git-submodule.sh
+9 -7
@@ -416,13 +416,15 @@ is_tip_reachable () (
416 fetch_in_submodule () (
417 sanitize_submodule_env &&
418 cd "$1" &&
419 - case "$2" in
420 - '')
421 - git fetch ;;
422 - *)
423 - shift
424 - git fetch $(get_default_remote) "$@" ;;
425 - esac
419 + if test $# -eq 3
420 + then
421 + echo "$3" | git fetch --stdin "$2"
422 + elif test "$2" -ne ""
423 + then
424 + git fetch "$2"
425 + else
426 + git fetch
427 + fi
428 )
429
430 #