On Thu, Oct 19, 2017 at 11:11:08AM -0700, Stefan Beller wrote: > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > > 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