On Thu, Oct 19, 2017 at 11:11:08AM -0700, Stefan Beller wrote:
> Signed-off-by: Stefan Beller <sbel...@google.com>
> ---
> 
> This is just to test the corner case we're discussing.
> Applies on top of origin/hv/fetch-moved-submodules-on-demand.
> 
> 
>  t/t5526-fetch-submodules.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
> 
> diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh
> index a552ad4ead..c82d519e06 100755
> --- a/t/t5526-fetch-submodules.sh
> +++ b/t/t5526-fetch-submodules.sh
> @@ -571,6 +571,7 @@ test_expect_success 'fetching submodule into a broken 
> repository' '
>  '
>  
>  test_expect_success "fetch new commits when submodule got renamed" '
> +     test_when_finished "rm -rf downstream_rename" &&
>       git clone . downstream_rename &&
>       (
>               cd downstream_rename &&
> @@ -605,4 +606,45 @@ test_expect_success "fetch new commits when submodule 
> got renamed" '
>       test_cmp expect actual
>  '
>  
> +test_expect_success "warn on submodule name/path clash, but new commits 
> fetched in renamed" '
> +     test_when_finished "rm -rf downstream_rename" &&
> +     git clone . downstream_rename &&
> +     (
> +             cd downstream_rename &&
> +             git submodule update --init &&
> +# NEEDSWORK: we omitted --recursive for the submodule update here since
> +# that does not work. See test 7001 for mv "moving nested submodules"
> +# for details. Once that is fixed we should add the --recursive option
> +# here.
> +             git checkout -b rename &&
> +             git mv submodule submodule_renamed &&
> +             (
> +                     cd submodule_renamed &&
> +                     git checkout -b rename_sub &&
> +                     echo a >a &&
> +                     git add a &&
> +                     git commit -ma &&
> +                     git push origin rename_sub &&
> +                     git rev-parse HEAD >../../expect
> +             ) &&
> +             git add submodule_renamed &&
> +             git commit -m "update renamed submodule" &&
> +             # produce collision, note that we use no submodule command
> +             git clone ../submodule submodule &&
> +             git add submodule &&

A small note even though this is not meant for inclusion: This would
break when I start working on teaching 'git add' to set default values
in .gitmodules when available.

But I guess I will discover a few other places, when starting that, that
will break in the tests anyway.

Cheers Heiko

Reply via email to