summaryrefslogtreecommitdiff
path: root/dir-iterator.c
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2017-01-25 15:04:50 -0800
committerJunio C Hamano <gitster@pobox.com>2017-01-26 11:01:04 -0800
commitec9629b3b9abc9fc9cb2a9e058bf8dccbc760433 (patch)
treec777462a63da0ec73e6ca5feef41d6805fa101da /dir-iterator.c
parent5f29433f1ca1efc35d546a056200d923e86e3fca (diff)
downloadgit-sb/submodule-recursive-absorb.tar.gz
submodule absorbing: fix worktree/gitdir pointers recursively for non-movessb/submodule-recursive-absorb
Consider having a submodule 'sub' and a nested submodule at 'sub/nested'. When nested is already absorbed into sub, but sub is not absorbed into its superproject, then we need to fixup the gitfile and core.worktree setting for 'nested' when absorbing 'sub', but we do not need to move its git dir around. Previously 'nested's gitfile contained "gitdir: ../.git/modules/nested"; it has to be corrected to "gitdir: ../../.git/modules/sub1/modules/nested". An alternative I considered to do this work lazily, i.e. when resolving "../.git/modules/nested", we would notice the ".git" being a gitfile linking to another path. That seemed to be robuster by design, but harder to get the implementation right. Maybe we have to do that anyway once we try to have submodules and worktrees working nicely together, but for now just produce 'correct' (i.e. direct) pointers. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir-iterator.c')
0 files changed, 0 insertions, 0 deletions