diff options
author | Stefan Beller <sbeller@google.com> | 2016-07-28 17:44:04 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-08-01 14:41:02 -0700 |
commit | 6cbf454a2eaa016efff04bd696dc1ec24b515c11 (patch) | |
tree | de1f4e8971f683527015dd0adb15b5540c2abf14 /git-submodule.sh | |
parent | d4470c5a46f0fa965b1916308025d031545005fe (diff) | |
download | git-6cbf454a2eaa016efff04bd696dc1ec24b515c11.tar.gz git-6cbf454a2eaa016efff04bd696dc1ec24b515c11.tar.xz |
submodule update: respect depth in subsequent fetches
When depth is given the user may have a reasonable expectation that
any remote operation is using the given depth. Add a test to demonstrate
we still get the desired sha1 even if the depth is too short to
include the actual commit.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 2b23ce6e2..40639ee23 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -479,7 +479,8 @@ fetch_in_submodule () ( '') git fetch ;; *) - git fetch $(get_default_remote) "$2" ;; + shift + git fetch $(get_default_remote) "$@" ;; esac ) @@ -617,7 +618,7 @@ cmd_update() if test -z "$nofetch" then # Fetch remote before determining tracking $sha1 - fetch_in_submodule "$sm_path" || + fetch_in_submodule "$sm_path" $depth || die "$(eval_gettext "Unable to fetch in submodule path '\$sm_path'")" fi remote_name=$(sanitize_submodule_env; cd "$sm_path" && get_default_remote) @@ -640,13 +641,13 @@ cmd_update() # Run fetch only if $sha1 isn't present or it # is not reachable from a ref. is_tip_reachable "$sm_path" "$sha1" || - fetch_in_submodule "$sm_path" || + fetch_in_submodule "$sm_path" $depth || die "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'")" # Now we tried the usual fetch, but $sha1 may # not be reachable from any of the refs is_tip_reachable "$sm_path" "$sha1" || - fetch_in_submodule "$sm_path" "$sha1" || + fetch_in_submodule "$sm_path" $depth "$sha1" || die "$(eval_gettext "Fetched in submodule path '\$displaypath', but it did not contain \$sha1. Direct fetching of that commit failed.")" fi |