'git mv' doesn't move submodule if it's in a subdirectory

4 messages, 2 authors, 2016-06-16 · open the first message on its own page

'git mv' doesn't move submodule if it's in a subdirectory

From: Albin Otterhäll <hidden>
Date: 2016-06-16 02:18:48

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

Re: 'git mv' doesn't move submodule if it's in a subdirectory

From: Stefan Beller <hidden>
Date: 2016-06-16 02:18:48

On Fri, Apr 15, 2016 at 1:14 AM, Albin Otterhäll [off-list ref] 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?)

Re: 'git mv' doesn't move submodule if it's in a subdirectory

From: Stefan Beller <hidden>
Date: 2016-06-16 02:18:48

On Fri, Apr 15, 2016 at 10:18 AM, Stefan Beller [off-list ref] wrote:
On Fri, Apr 15, 2016 at 1:14 AM, Albin Otterhäll [off-list ref] wrote:
quoted
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

Re: 'git mv' doesn't move submodule if it's in a subdirectory

From: Albin Otterhäll <hidden>
Date: 2016-06-16 02:18:49

On 2016-04-15 19:18, Stefan Beller wrote:
On Fri, Apr 15, 2016 at 1:14 AM, Albin Otterhäll [off-list ref] wrote:
quoted
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'm using 2.8.0 (on an Arch system). Haven't tested on any other version.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help