[PATCH v2] add test for bug in git-mv for recursive submodules
- From
Heiko Voigt <hvoigt@hvoigt.net>
- Date
- Sep 15, 2017, 11:50 UTC
- Message-ID
- <20170915115021.GB76244@book.hvoigt.net>
- In-Reply-To
- <CAGZ79kYNLo_3PfLTOE5wusTs6wgFXZLVH+qNZ-ovxGguhinHLg@mail.gmail.com>
When using git-mv with a submodule it will detect that and update the paths for its configurations (.gitmodules, worktree and gitfile). This does not work for recursive submodules where a user renames the root submodule.
We discovered this fact when working on on-demand fetch for renamed submodules. Lets add a test to document.
Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> --- On Fri, Aug 18, 2017 at 12:04:03PM -0700, Stefan Beller wrote:
Show 13 quoted lines
> > I just copied the shortcut that they were adding themselfes as submodule > > in 'setup submodule'. The whole setup of submodules in this test is like > > this. This way we already had a nested submodule structure which I could > > just add. > > > > I agree that this is unrealistic so I can change that in the test I am > > adding. But from what I have seen, this shortcut is taken in quite some > > places when dealing with submodules. > > Please do not make it worse. > Once upon a time (late '16 IIRC) I had a series floating on the > list removing all occurrences, but there were issues with the > series and it did not land.
Took a little while but here is a more clean patch creating individual submodules for the nesting.
Cheers Heiko
t/t7001-mv.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index e365d1ff77..cbc5fb37fe 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -491,4 +491,29 @@ test_expect_success 'moving a submodule in nested directories' ' test_cmp actual expect ' +test_expect_failure 'moving nested submodules' ' + git commit -am "cleanup commit" && + mkdir sub_nested_nested && + (cd sub_nested_nested && + touch nested_level2 && + git init && + git add . && + git commit -m "nested level 2" + ) && + mkdir sub_nested && + (cd sub_nested && + touch nested_level1 && + git init && + git add . && + git commit -m "nested level 1" + git submodule add ../sub_nested_nested && + git commit -m "add nested level 2" + ) && + git submodule add ./sub_nested nested_move && + git commit -m "add nested_move" && + git submodule update --init --recursive && + git mv nested_move sub_nested_moved && + git status +' + test_done
-- 2.14.1.145.gb3622a4