On Thu, Nov 12, 2015 at 1:37 AM, <larsxschneider@xxxxxxxxx> wrote: > From: Lars Schneider <larsxschneider@xxxxxxxxx> > > "git clone --recursive --depth 1 --single-branch <url>" clones the > submodules successfully. However, it does not obey "--depth 1" for > submodule cloning. > > The following workaround does only work if the used submodule pointer > is on the default branch. Otherwise "git submodule update" fails with > "fatal: reference is not a tree:" and "Unable to checkout". > git clone --depth 1 --single-branch <url> > cd <repo-name> > git submodule update --init --recursive --depth 1 > > The workaround does not fail using the "--remote" flag. However, in that > case the wrong commit is checked out. > > Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx> > --- Thanks for writing these tests. :) > +test_expect_failure shallow-clone-recursive-workaround ' > + URL="file://$(pwd | sed "s/[[:space:]]/%20/g")/repo" && > + echo $URL && > + git clone --depth 1 --single-branch $URL clone-recursive-workaround && > + ( > + cd "clone-recursive-workaround" && > + git log --oneline >lines && > + test_line_count = 1 lines && > + git submodule update --init --recursive --depth 1 Should we prepend the lines with git submodule update with test_must_fail here? > + ) > +' > + > +test_expect_failure shallow-clone-recursive-with-remote-workaround ' > + URL="file://$(pwd | sed "s/[[:space:]]/%20/g")/repo" && > + echo $URL && > + git clone --depth 1 --single-branch $URL clone-recursive-remote-workaround && > + ( > + cd "clone-recursive-remote-workaround" && > + git log --oneline >lines && > + test_line_count = 1 lines && > + git submodule update --init --remote --recursive --depth 1 && > + git status submodule >status && > + test_must_fail grep "modified:" status Use ! here instead of test_must_fail. IIUC we use test_must_fail for git commands (to test that git does return a non null value instead of segfaulting). But on the other hand we trust grep to not segfault, so just negating its output is enough here. > + ) > +' > + > +test_done > -- > 2.5.1 > -- 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