Re: [PATCH v2] add test to demonstrate that shallow recursive clones fail
- From
Lars Schneider <larsxschneider@gmail.com>
- Date
- Nov 15, 2015, 12:43 UTC
- Message-ID
- <A8B23B05-CF5D-469A-B8E6-D80B0B3533C5@gmail.com>
- In-Reply-To
- <CAGZ79kb3w7STeEdUtGS8wtQdBznhnSOprwTeOx8Csx2bHXX9Rw@mail.gmail.com>
On 13 Nov 2015, at 00:34, Stefan Beller <sbeller@google.com> wrote:
Show 21 quoted lines
> On Thu, Nov 12, 2015 at 1:37 AM, <larsxschneider@gmail.com> wrote: >> From: Lars Schneider <larsxschneider@gmail.com> >> >> "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@gmail.com> >> --- > > Thanks for writing these tests. :)
Thanks for looking into the issue :)
Show 12 quoted lines
> >> +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?
Show 22 quoted lines
> >> + ) >> +' >> + >> +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