On 13 Nov 2015, at 00:34, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > 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. :) Thanks for looking into the issue :) > >> +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? Wouldn't the test fail then? The test is expected to fail (see "test_expect_failure"). Am I missing something? > >> + ) >> +' >> + >> +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. OK! I will fix that in the next series! Thanks, Lars-- 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