summaryrefslogtreecommitdiff
path: root/git-submodule.sh
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2016-07-29 00:44:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-08-01 21:41:02 (GMT)
commit6cbf454a2eaa016efff04bd696dc1ec24b515c11 (patch)
treede1f4e8971f683527015dd0adb15b5540c2abf14 /git-submodule.sh
parentd4470c5a46f0fa965b1916308025d031545005fe (diff)
downloadgit-6cbf454a2eaa016efff04bd696dc1ec24b515c11.zip
git-6cbf454a2eaa016efff04bd696dc1ec24b515c11.tar.gz
git-6cbf454a2eaa016efff04bd696dc1ec24b515c11.tar.bz2
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-xgit-submodule.sh9
1 files changed, 5 insertions, 4 deletions
diff --git a/git-submodule.sh b/git-submodule.sh
index 2b23ce6..40639ee 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