[PATCH v3 1/3] submodule: use "fetch" logic instead of custom remote discovery
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Nov 14, 2020, 12:21 UTC
- Message-ID
- <20201114122132.4344-2-avarab@gmail.com>
- In-Reply-To
- <20201112203155.3342586-1-gitster@pobox.com>
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> --- git-submodule.sh | 16 +++++++++------- 1 file 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 ) #
-- 2.29.2.222.g5d2a92d10f8