> On 13 Apr 2016, at 01:48, Stefan Beller <sbel...@google.com> 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 <sbel...@google.com>
> ---
> 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 majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to