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 /t | |
parent | d4470c5a46f0fa965b1916308025d031545005fe (diff) | |
download | git-6cbf454a2eaa016efff04bd696dc1ec24b515c11.tar.gz |
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 't')
-rwxr-xr-x | t/t7406-submodule-update.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index 8fc3a25c46..1bb1f43824 100755 --- a/t/t7406-submodule-update.sh +++ b/t/t7406-submodule-update.sh @@ -856,6 +856,22 @@ test_expect_success 'submodule update clone shallow submodule' ' ) ' +test_expect_success 'submodule update clone shallow submodule outside of depth' ' + test_when_finished "rm -rf super3" && + git clone cloned super3 && + pwd=$(pwd) && + ( + cd super3 && + sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules >.gitmodules.tmp && + mv -f .gitmodules.tmp .gitmodules && + test_must_fail git submodule update --init --depth=1 2>actual && + test_i18ngrep "Direct fetching of that commit failed." actual && + git -C ../submodule config uploadpack.allowReachableSHA1InWant true && + git submodule update --init --depth=1 >actual && + test 1 = $(git -C submodule log --oneline | wc -l) + ) +' + test_expect_success 'submodule update --recursive drops module name before recursing' ' (cd super2 && (cd deeper/submodule/subsubmodule && |