diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-05-16 11:51:56 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-16 11:51:56 +0900 |
commit | 883247c2fc1783b448fb8730284de85a758dc05d (patch) | |
tree | a0592cbc3660042e0b4b9780f419e1b7469f8836 | |
parent | 4875663703154974a71e8c706f257464b3f223e5 (diff) | |
parent | db4eca1feaafa0669b7ba64c10314dfe8836576a (diff) | |
download | git-883247c2fc1783b448fb8730284de85a758dc05d.tar.gz |
Merge branch 'jn/clone-add-empty-config-from-command-line'
"git clone --config var=val" is a way to populate the
per-repository configuration file of the new repository, but it did
not work well when val is an empty string. This has been fixed.
* jn/clone-add-empty-config-from-command-line:
clone: handle empty config values in -c
-rw-r--r-- | builtin/clone.c | 4 | ||||
-rwxr-xr-x | t/t5611-clone-config.sh | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/builtin/clone.c b/builtin/clone.c index 05f52d6f2b..afab299433 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -776,7 +776,9 @@ static int checkout(int submodule_progress) static int write_one_config(const char *key, const char *value, void *data) { - return git_config_set_multivar_gently(key, value ? value : "true", "^$", 0); + return git_config_set_multivar_gently(key, + value ? value : "true", + CONFIG_REGEX_NONE, 0); } static void write_config(struct string_list *config) diff --git a/t/t5611-clone-config.sh b/t/t5611-clone-config.sh index e4850b778c..39329eb7a8 100755 --- a/t/t5611-clone-config.sh +++ b/t/t5611-clone-config.sh @@ -19,6 +19,14 @@ test_expect_success 'clone -c can set multi-keys' ' test_cmp expect actual ' +test_expect_success 'clone -c can set multi-keys, including some empty' ' + rm -rf child && + git clone -c credential.helper= -c credential.helper=hi . child && + printf "%s\n" "" hi >expect && + git --git-dir=child/.git config --get-all credential.helper >actual && + test_cmp expect actual +' + test_expect_success 'clone -c without a value is boolean true' ' rm -rf child && git clone -c core.foo . child && |