[PATCH 3/3] clone: Add t5614 to test cloning submodules with shallowness involved
- From
Stefan Beller <sbeller@google.com>
- Date
- Mar 16, 2016, 01:12 UTC
- Message-ID
- <1458090737-14030-4-git-send-email-sbeller@google.com>
- In-Reply-To
- <1458090737-14030-1-git-send-email-sbeller@google.com>
There are some inherent issues with shallow clones and submodules, such as having not having a commit available the superproject may point to in the submodule due to being shallow. Use the new file t5614 to document and test expectations in this area.
Signed-off-by: Stefan Beller <sbeller@google.com> ---
Notes:
$gmane/288916 does renaming operations,
"[PATCH] clone tests: rename t57* => t56*",
such that the first 13 spots in t56* are taken.
So we'll go with ..14 to not cause conflicts.
(If not having that renaming patch in mind, you
may end up aksing yourself "why ..14?")t/t5614-clone-submodules.sh | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100755 t/t5614-clone-submodules.sh
diff --git a/t/t5614-clone-submodules.sh b/t/t5614-clone-submodules.sh new file mode 100755 index 0000000..a66c2db --- /dev/null +++ b/t/t5614-clone-submodules.sh @@ -0,0 +1,82 @@ +#!/bin/sh + +test_description='Test shallow cloning of repos with submodules' + +. ./test-lib.sh + +test_expect_success 'setup' ' + git checkout -b master && + test_commit commit1 && + test_commit commit2 && + mkdir sub && + ( + cd sub && + git init && + test_commit subcommit1 && + test_commit subcommit2 + ) && + git submodule add ./sub && + git commit -m "add submodule" +' + +test_expect_success 'nonshallow clone implies nonshallow submodule' ' + test_when_finished "rm -rf super_clone" && + git clone --recurse-submodules . super_clone && + ( + cd super_clone && + git log --oneline >lines && + test_line_count = 3 lines + ) && + ( + cd super_clone/sub && + git log --oneline >lines && + test_line_count = 2 lines + ) +' + +test_expect_success 'shallow clone implies shallow submodule' ' + test_when_finished "rm -rf super_clone" && + git clone --recurse-submodules --no-local --depth 1 . super_clone && + ( + cd super_clone && + git log --oneline >lines && + test_line_count = 1 lines + ) && + ( + cd super_clone/sub && + git log --oneline >lines && + test_line_count = 1 lines + ) +' + +test_expect_success 'shallow clone with non shallow submodule' ' + test_when_finished "rm -rf super_clone" && + git clone --recurse-submodules --no-local --depth 1 --no-shallow-submodules . super_clone && + ( + cd super_clone && + git log --oneline >lines && + test_line_count = 1 lines + ) && + ( + cd super_clone/sub && + git log --oneline >lines && + test_line_count = 2 lines + ) +' + +test_expect_success 'non shallow clone with shallow submodule' ' + test_when_finished "rm -rf super_clone" && + git clone --recurse-submodules --no-local --shallow-submodules . super_clone && + ( + cd super_clone && + git log --oneline >lines && + test_line_count = 3 lines + ) && + ( + cd super_clone/sub && + git log --oneline >lines && + test_line_count = 1 lines + ) +' + +test_done
-- 2.7.0.rc0.42.g8e9204f.dirty