> On 13 Apr 2016, at 01:48, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> > --- > 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 && You could add another commit to the super repo and then clone with "--depth 2". The super repo would then contain 2 lines and the submodule still just 1. This would make it more obvious that shallow submodules always have a depth of 1. > + ( > + 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.5.0.264.gc776916.dirty > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html