Re: 'git mv' doesn't move submodule if it's in a subdirectory
- From
Stefan Beller <sbeller@google.com>
- Date
- Apr 15, 2016, 17:59 UTC
- Message-ID
- <CAGZ79kZifiEY1rg6KNFRnkOemjJhY9fFpxHmK0gB8fLh1siAxw@mail.gmail.com>
- In-Reply-To
- <CAGZ79kaN-s74cJkgOq3+7e57-BKevMr8pr=tAHVEpELetVYnTA@mail.gmail.com>
On Fri, Apr 15, 2016 at 10:18 AM, Stefan Beller <sbeller@google.com> wrote:
Show 11 quoted lines
> On Fri, Apr 15, 2016 at 1:14 AM, Albin Otterhäll <gmane@otterhall.com> wrote:
>> I've a submodule located in a subdirectory
>> ({git_rep}/home/{directory}/{submodule}), and I wanted to move the whole
>> directory up a level ({git_rep}/{directory}/{submodule}). But when I
>> used 'git mv {directory} ../' the '.gitmodule' file didn't get modified.
>>
>> Best regards,
>> Albin Otterhäll
>
> Thanks for the bug report!
> Which version of Git do you use? (Did you try different versions?)I think I can reproduce the problem. A regression test (which currently fails) could look like
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index 4008fae..3b96a9a 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -292,6 +292,9 @@ test_expect_success 'setup submodule' ' echo content >file && git add file && git commit -m "added sub and file" && + mkdir -p deep/directory/hierachy && + git submodule add ./. deep/directory/hierachy/sub && + git commit -m "added another submodule" && git branch submodule ' @@ -475,4 +478,14 @@ test_expect_success 'mv -k does not accidentally destroy submodules' ' git checkout . ' +test_expect_failure 'moving a submodule in nested directories' ' + ( + cd deep && + git mv directory ../ && + git status + # currently git status exits with 128 + # fatal: Not a git repository: directory/hierachy/sub/../../../../.git/modules/deep/directory/hierachy/sub + ) +' + test_done