submodule deinit: unset core.worktree
commit8eda5efa1269a6117b86a97a309eb3a195b5f087
authorStefan Beller <sbeller@google.com>
Fri, 14 Dec 2018 23:59:45 +0000 (14 15:59 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 26 Dec 2018 18:39:54 +0000 (26 10:39 -0800)
tree15dd398c9b8d05d431988380b29866298a910185
parent820a647e67ad21ecb1d23b2154c44ad13e794443
submodule deinit: unset core.worktree

When a submodule is deinit'd, the working tree is gone, so the setting of
core.worktree is bogus. Unset it. As we covered the only other case in
which a submodule loses its working tree in the earlier step
(i.e. switching branches of top-level project to move to a commit that did
not have the submodule), this makes the code always maintain
core.worktree correctly unset when there is no working tree
for a submodule.

This re-introduces 984cd77ddb (submodule deinit: unset core.worktree,
2018-06-18), which was reverted as part of f178c13fda (Revert "Merge
branch 'sb/submodule-core-worktree'", 2018-09-07)

The whole series was reverted as the offending commit e98317508c
(submodule: ensure core.worktree is set after update, 2018-06-18)
was relied on by other commits such as 984cd77ddb.

Keep the offending commit reverted, but its functionality came back via
4d6d6ef1fc (Merge branch 'sb/submodule-update-in-c', 2018-09-17), such
that we can reintroduce 984cd77ddb now.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c
t/lib-submodule-update.sh
t/t7400-submodule-basic.sh