git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Stefan Beller <stefanbeller@googlemail.com>
Cc: git@vger.kernel.org, sunshine@sunshineco.com
Subject: Re: [PATCHv3 7/9] config parsing options: allow one flag multiple times
Date: Mon, 05 Aug 2013 11:52:45 -0700	[thread overview]
Message-ID: <7vk3k0j7gi.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <1375530686-2309-8-git-send-email-stefanbeller@googlemail.com> (Stefan Beller's message of "Sat, 3 Aug 2013 13:51:24 +0200")

Stefan Beller <stefanbeller@googlemail.com> writes:

> This task emerged from b04ba2bb (parse-options: deprecate OPT_BOOLEAN,
> 2011-09-27).
>
> This commit introduces a change for the users, after this patch
> you can pass one of the config level flags multiple times:
> Before:
> 	$ git config --global --global --list
> 	error: only one config file at a time.
> 	usage: ...
>
> Afterwards this will work. This is due to the following check in the code:
> 	if (use_global_config + use_system_config + use_local_config +
> 	    !!given_config_file + !!given_config_blob > 1) {
> 		error("only one config file at a time.");
> 		usage_with_options(builtin_config_usage, builtin_config_options);
> 	}

Of course, you could further lose that "at most one of them" logic
by using CMDMODE.  That will involve updating the logic that
currently looks at these three variables to look at one enum that
can have 4 states (nothing specified, and one of these three
specified), which will be more involved change, but the resulting
code may become simpler (I didn't try---I am just speculating).

Thanks.

>
> With OPT_BOOL instead of OPT_BOOLEAN the variables use_global_config,
> use_system_config, use_local_config will only have the value 0 if the
> command line option was not passed or 1 no matter how often the
> respective command line option was passed.
>
> Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
> ---



>  builtin/config.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/builtin/config.c b/builtin/config.c
> index da12fdb..4ab9e9a 100644
> --- a/builtin/config.c
> +++ b/builtin/config.c
> @@ -50,9 +50,9 @@ static int respect_includes = -1;
>  
>  static struct option builtin_config_options[] = {
>  	OPT_GROUP(N_("Config file location")),
> -	OPT_BOOLEAN(0, "global", &use_global_config, N_("use global config file")),
> -	OPT_BOOLEAN(0, "system", &use_system_config, N_("use system config file")),
> -	OPT_BOOLEAN(0, "local", &use_local_config, N_("use repository config file")),
> +	OPT_BOOL(0, "global", &use_global_config, N_("use global config file")),
> +	OPT_BOOL(0, "system", &use_system_config, N_("use system config file")),
> +	OPT_BOOL(0, "local", &use_local_config, N_("use repository config file")),
>  	OPT_STRING('f', "file", &given_config_file, N_("file"), N_("use given config file")),
>  	OPT_STRING(0, "blob", &given_config_blob, N_("blob-id"), N_("read config from given blob object")),
>  	OPT_GROUP(N_("Action")),

  reply	other threads:[~2013-08-05 18:52 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-03 11:51 [PATCHv3 0/9] Removing deprecated parsing macros Stefan Beller
2013-08-03 11:51 ` [PATCHv3 1/9] Remove deprecated OPTION_BOOLEAN for parsing arguments Stefan Beller
2013-08-03 11:51 ` [PATCHv3 2/9] Replace deprecated OPT_BOOLEAN by OPT_BOOL Stefan Beller
2013-08-03 11:51 ` [PATCHv3 3/9] log, format-patch: parsing uses OPT__QUIET Stefan Beller
2013-08-03 11:51 ` [PATCHv3 4/9] checkout: remove superfluous local variable Stefan Beller
2013-08-03 11:51 ` [PATCHv3 5/9] branch, commit, name-rev: ease up boolean conditions Stefan Beller
2013-08-03 11:51 ` [PATCHv3 6/9] hash-object: Replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP Stefan Beller
2013-08-05 18:50   ` Junio C Hamano
2013-08-03 11:51 ` [PATCHv3 7/9] config parsing options: allow one flag multiple times Stefan Beller
2013-08-05 18:52   ` Junio C Hamano [this message]
2013-08-03 11:51 ` [PATCHv3 8/9] checkout-index: Fix negations of even numbers of -n Stefan Beller
2013-08-03 11:51 ` [PATCHv3 9/9] revert: use the OPT_CMDMODE for parsing, reducing code Stefan Beller
2013-08-03 11:55 ` [PATCHv3 0/9] Removing deprecated parsing macros Stefan Beller
2013-08-06  6:39 ` Junio C Hamano
2013-08-06 13:02   ` Stefan Beller
2013-08-06 13:07     ` [PATCH] branch, commit, name-rev: ease up boolean conditions Stefan Beller
2013-08-06 18:46       ` Eric Sunshine
2013-08-06 20:18         ` Stefan Beller
2013-08-06 20:18           ` Stefan Beller
2013-08-06 17:20     ` [PATCHv3 0/9] Removing deprecated parsing macros Junio C Hamano
2013-08-06 23:31       ` [PATCH 0/4] Update built-in parseopt macros Junio C Hamano
2013-08-06 23:31         ` [PATCH 1/4] OPT__QUIET(): switch from count-up to true bool Junio C Hamano
2013-08-06 23:31         ` [PATCH 2/4] OPT__VERBOSE(): clarify its expected use by using OPT_COUNTUP Junio C Hamano
2013-08-06 23:31         ` [PATCH 3/4] OPT__DRY_RUN(): use OPT_BOOL, not OPT_BOOLEAN Junio C Hamano
2013-08-06 23:31         ` [RFH/PATCH 4/4] OPT__FORCE(): clarify its expected use by using OPT_COUNTUP Junio C Hamano
2013-08-07  7:33           ` Stefan Beller
2013-08-07 15:28             ` Junio C Hamano

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=7vk3k0j7gi.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=stefanbeller@googlemail.com \
    --cc=sunshine@sunshineco.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public 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).