diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2020-11-14 13:21:30 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-11-16 21:54:43 +0100 |
commit | 1c1518071c7fa79de13b8c599d8dbb371950b033 (patch) | |
tree | fa6ad9366253a8f89a5f8480d9f7faf2cb457dd3 /git-submodule.sh | |
parent | Git 2.29.2 (diff) | |
download | git-1c1518071c7fa79de13b8c599d8dbb371950b033.tar.xz git-1c1518071c7fa79de13b8c599d8dbb371950b033.zip |
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>
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 7ce52872b7..d39fd226d8 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -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 ) # |