Browse Source

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.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Stefan Beller 7 years ago committed by Junio C Hamano
parent
commit
984cd77ddb
  1. 2
      builtin/submodule--helper.c
  2. 2
      t/lib-submodule-update.sh
  3. 5
      t/t7400-submodule-basic.sh

2
builtin/submodule--helper.c

@ -980,6 +980,8 @@ static void deinit_submodule(const char *path, const char *prefix, @@ -980,6 +980,8 @@ static void deinit_submodule(const char *path, const char *prefix,
if (!(flags & OPT_QUIET))
printf(format, displaypath);

submodule_unset_core_worktree(sub);

strbuf_release(&sb_rm);
}


2
t/lib-submodule-update.sh

@ -235,7 +235,7 @@ reset_work_tree_to_interested () { @@ -235,7 +235,7 @@ reset_work_tree_to_interested () {
then
mkdir -p submodule_update/.git/modules/sub1/modules &&
cp -r submodule_update_repo/.git/modules/sub1/modules/sub2 submodule_update/.git/modules/sub1/modules/sub2
GIT_WORK_TREE=. git -C submodule_update/.git/modules/sub1/modules/sub2 config --unset core.worktree
# core.worktree is unset for sub2 as it is not checked out
fi &&
# indicate we are interested in the submodule:
git -C submodule_update config submodule.sub1.url "bogus" &&

5
t/t7400-submodule-basic.sh

@ -991,6 +991,11 @@ test_expect_success 'submodule deinit should remove the whole submodule section @@ -991,6 +991,11 @@ test_expect_success 'submodule deinit should remove the whole submodule section
rmdir init
'

test_expect_success 'submodule deinit should unset core.worktree' '
test_path_is_file .git/modules/example/config &&
test_must_fail git config -f .git/modules/example/config core.worktree
'

test_expect_success 'submodule deinit from subdirectory' '
git submodule update --init &&
git config submodule.example.foo bar &&

Loading…
Cancel
Save