From: Denton Liu <liu.denton@gmail.com> To: git@vger.kernel.org Cc: gitster@pobox.com Subject: [PATCH v3 2/3] submodule--helper: teach config subcommand --unset Date: Thu, 7 Feb 2019 02:18:57 -0800 [thread overview] Message-ID: <e90dfe992e96b33f167d08fe51df49ab1d10ef23.1549534460.git.liu.denton@gmail.com> (raw) In-Reply-To: <cover.1549534460.git.liu.denton@gmail.com> This teaches submodule--helper config the --unset option, which removes the specified configuration key from the .gitmodule file. Signed-off-by: Denton Liu <liu.denton@gmail.com> --- builtin/submodule--helper.c | 18 ++++++++++++------ t/t7411-submodule-config.sh | 9 +++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index b80fc4ba3d..a86eacf167 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -2148,17 +2148,22 @@ static int check_name(int argc, const char **argv, const char *prefix) static int module_config(int argc, const char **argv, const char *prefix) { enum { - CHECK_WRITEABLE = 1 - } command = 0; + NONE, + CHECK_WRITEABLE, + DO_UNSET + } command = NONE; struct option module_config_options[] = { OPT_CMDMODE(0, "check-writeable", &command, N_("check if it is safe to write to the .gitmodules file"), CHECK_WRITEABLE), + OPT_CMDMODE(0, "unset", &command, + N_("unset the config in the .gitmodules file"), + DO_UNSET), OPT_END() }; const char *const git_submodule_helper_usage[] = { - N_("git submodule--helper config name [value]"), + N_("git submodule--helper config name [--unset] [value]"), N_("git submodule--helper config --check-writeable"), NULL }; @@ -2170,15 +2175,16 @@ static int module_config(int argc, const char **argv, const char *prefix) return is_writing_gitmodules_ok() ? 0 : -1; /* Equivalent to ACTION_GET in builtin/config.c */ - if (argc == 2) + if (argc == 2 && command != DO_UNSET) return print_config_from_gitmodules(the_repository, argv[1]); /* Equivalent to ACTION_SET in builtin/config.c */ - if (argc == 3) { + if (argc == 3 || (argc == 2 && command == DO_UNSET)) { if (!is_writing_gitmodules_ok()) die(_("please make sure that the .gitmodules file is in the working tree")); - return config_set_in_gitmodules_file_gently(argv[1], argv[2]); + const char *value = (argc == 3) ? argv[2] : NULL; + return config_set_in_gitmodules_file_gently(argv[1], value); } usage_with_options(git_submodule_helper_usage, module_config_options); diff --git a/t/t7411-submodule-config.sh b/t/t7411-submodule-config.sh index 89690b7adb..fcc0fb82d8 100755 --- a/t/t7411-submodule-config.sh +++ b/t/t7411-submodule-config.sh @@ -142,6 +142,15 @@ test_expect_success 'reading submodules config from the working tree with "submo ) ' +test_expect_success 'unsetting submodules config from the working tree with "submodule--helper config --unset"' ' + (cd super && + git submodule--helper config --unset submodule.submodule.url && + git submodule--helper config submodule.submodule.url >actual && + test_must_be_empty actual + ) +' + + test_expect_success 'writing submodules config with "submodule--helper config"' ' (cd super && echo "new_url" >expect && -- 2.20.1.522.g5f42c252e9
next prev parent reply other threads:[~2019-02-07 10:19 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-06 10:59 [PATCH 0/3] Teach submodule set-branch subcommand Denton Liu 2019-02-06 10:59 ` [PATCH 1/3] git-submodule.txt: document default behavior without --branch Denton Liu 2019-02-06 18:46 ` Junio C Hamano 2019-02-06 10:59 ` [PATCH 2/3] submodule--helper: teach config subcommand --unset Denton Liu 2019-02-06 19:07 ` Junio C Hamano 2019-02-06 10:59 ` [PATCH 3/3] submodule: teach set-branch subcommand Denton Liu 2019-02-07 6:32 ` [PATCH v2 0/3] Teach submodule " Denton Liu 2019-02-07 6:32 ` [PATCH v2 1/3] git-submodule.txt: document default behavior without --branch Denton Liu 2019-02-07 6:32 ` [PATCH v2 2/3] submodule--helper: teach config subcommand --unset Denton Liu 2019-02-07 6:33 ` [PATCH v2 3/3] submodule: teach set-branch subcommand Denton Liu 2019-02-07 10:18 ` [PATCH v3 0/3] Teach submodule " Denton Liu 2019-02-07 10:18 ` [PATCH v3 1/3] git-submodule.txt: "--branch <branch>" option defaults to 'master' Denton Liu 2019-02-07 10:18 ` Denton Liu [this message] 2019-02-07 20:05 ` [PATCH v3 2/3] submodule--helper: teach config subcommand --unset Junio C Hamano 2019-02-07 22:29 ` Junio C Hamano 2019-02-07 10:19 ` [PATCH v3 3/3] submodule: teach set-branch subcommand Denton Liu 2019-02-07 22:26 ` Junio C Hamano 2019-02-07 18:01 ` [PATCH v3 0/3] Teach submodule " Junio C Hamano 2019-02-08 5:31 ` Denton Liu 2019-02-08 18:43 ` Junio C Hamano 2019-02-08 11:21 ` [PATCH v4 " Denton Liu 2019-02-08 11:21 ` [PATCH v4 1/3] git-submodule.txt: "--branch <branch>" option defaults to 'master' Denton Liu 2019-02-08 11:21 ` [PATCH v4 2/3] submodule--helper: teach config subcommand --unset Denton Liu 2019-02-08 11:21 ` [PATCH v4 3/3] submodule: teach set-branch subcommand Denton Liu 2019-02-08 23:51 ` Denton Liu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=e90dfe992e96b33f167d08fe51df49ab1d10ef23.1549534460.git.liu.denton@gmail.com \ --to=liu.denton@gmail.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --subject='Re: [PATCH v3 2/3] submodule--helper: teach config subcommand --unset' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).