mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
submodule add: respect submodule.active and submodule.<name>.active
In addition to adding submodule.<name>.url to the config, set submodule.<name>.active to true unless submodule.active is configured and the submodule's path matches the configured pathspec. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1f8d711548
commit
1b614c07d2
@ -278,6 +278,20 @@ or you are unsure what this means choose another name with the '--name' option."
|
||||
fi &&
|
||||
git add --force .gitmodules ||
|
||||
die "$(eval_gettext "Failed to register submodule '\$sm_path'")"
|
||||
|
||||
# NEEDSWORK: In a multi-working-tree world, this needs to be
|
||||
# set in the per-worktree config.
|
||||
if git config --get submodule.active >/dev/null
|
||||
then
|
||||
# If the submodule being adding isn't already covered by the
|
||||
# current configured pathspec, set the submodule's active flag
|
||||
if ! git submodule--helper is-active "$sm_path"
|
||||
then
|
||||
git config submodule."$sm_name".active "true"
|
||||
fi
|
||||
else
|
||||
git config submodule."$sm_name".active "true"
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -15,6 +15,12 @@ test_expect_success 'setup' '
|
||||
test_commit -C super initial &&
|
||||
git -C super submodule add ../sub sub1 &&
|
||||
git -C super submodule add ../sub sub2 &&
|
||||
|
||||
# Remove submodule.<name>.active entries in order to test in an
|
||||
# environment where only URLs are present in the conifg
|
||||
git -C super config --unset submodule.sub1.active &&
|
||||
git -C super config --unset submodule.sub2.active &&
|
||||
|
||||
git -C super commit -a -m "add 2 submodules at sub{1,2}"
|
||||
'
|
||||
|
||||
@ -83,4 +89,19 @@ test_expect_success 'is-active with submodule.active and submodule.<name>.active
|
||||
git -C super submodule--helper is-active sub2
|
||||
'
|
||||
|
||||
test_expect_success 'is-active, submodule.active and submodule add' '
|
||||
test_when_finished "rm -rf super2" &&
|
||||
git init super2 &&
|
||||
test_commit -C super2 initial &&
|
||||
git -C super2 config --add submodule.active "sub*" &&
|
||||
|
||||
# submodule add should only add submodule.<name>.active
|
||||
# to the config if not matched by the pathspec
|
||||
git -C super2 submodule add ../sub sub1 &&
|
||||
test_must_fail git -C super2 config --get submodule.sub1.active &&
|
||||
|
||||
git -C super2 submodule add ../sub mod &&
|
||||
git -C super2 config --get submodule.mod.active
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user