From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: "René Scharfe" <l.s.r@web.de>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, Stephen Boyd <bebarino@gmail.com>
Subject: Re: [PATCH] push: comment on a funny unbalanced option help
Date: Thu, 02 Aug 2018 16:21:19 +0200 [thread overview]
Message-ID: <87ftzwu9wg.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <30a6105c-4cb7-b52f-0b0a-c4504b90a5b1@web.de>
On Thu, Aug 02 2018, René Scharfe wrote:
> Am 02.08.2018 um 00:31 schrieb Ævar Arnfjörð Bjarmason:
>> But looking at this again it looks like this whole thing should just be
>> replaced by:
>>
>> diff --git a/builtin/push.c b/builtin/push.c
>> index 9cd8e8cd56..b8fa15c101 100644
>> --- a/builtin/push.c
>> +++ b/builtin/push.c
>> @@ -558,9 +558,10 @@ int cmd_push(int argc, const char **argv, const char *prefix)
>> OPT_BIT( 0, "porcelain", &flags, N_("machine-readable output"), TRANSPORT_PUSH_PORCELAIN),
>> OPT_BIT('f', "force", &flags, N_("force updates"), TRANSPORT_PUSH_FORCE),
>> { OPTION_CALLBACK,
>> - 0, CAS_OPT_NAME, &cas, N_("refname>:<expect"),
>> + 0, CAS_OPT_NAME, &cas, N_("<refname>:<expect>"),
>> N_("require old value of ref to be at this value"),
>> - PARSE_OPT_OPTARG, parseopt_push_cas_option },
>> + PARSE_OPT_OPTARG | PARSE_OPT_LITERAL_ARGHELP,
>> + parseopt_push_cas_option },
>> { OPTION_CALLBACK, 0, "recurse-submodules", &recurse_submodules, "check|on-demand|no",
>> N_("control recursive pushing of submodules"),
>> PARSE_OPT_OPTARG, option_parse_recurse_submodules },
>>
>> I.e. the reason this is confusing is because the code originally added
>> in 28f5d17611 ("remote.c: add command line option parser for
>> "--force-with-lease"", 2013-07-08) didn't use PARSE_OPT_LITERAL_ARGHELP,
>> which I also see is what read-tree etc. use already to not end up with
>> these double <>'s, see also 29f25d493c ("parse-options: add
>> PARSE_OPT_LITERAL_ARGHELP for complicated argh's", 2009-05-21).
>
> We could check if argh comes with its own angle brackets already and
> not add a second pair in that case, making PARSE_OPT_LITERAL_ARGHELP
> redundant in most cases, including the one above. Any downsides?
> Too magical?
I'm more inclined to say that we should stop using
PARSE_OPT_LITERAL_ARGHELP in some of these cases, and change
"refname>:<expect" to "<refname>:<expect>" in push.c, so that the help
we emit is --force-with-lease[=<<refname>:<expect>>].
As noted in 29f25d493c this facility wasn't added with the intent
turning --refspec=<<refspec>> into --refspec=<refspec>, but to do stuff
like --option=<val1>[,<val2>] for options that take comma-delimited
options.
If we're magically removing <>'s we have no consistent convention to
tell apart --opt=<a|b|c> meaning "one of a, b or c", --refspec=<refspec>
meaning "the literal string 'refspec'" and --refspec=<<refspec>> meaning
add a <refspec> string, i.e. fill in your refspec here.
next prev parent reply other threads:[~2018-08-02 14:21 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-01 18:43 [PATCH] push: comment on a funny unbalanced option help Junio C Hamano
2018-08-01 20:46 ` Ævar Arnfjörð Bjarmason
2018-08-01 21:48 ` Junio C Hamano
2018-08-01 22:31 ` Ævar Arnfjörð Bjarmason
2018-08-02 12:16 ` René Scharfe
2018-08-02 14:21 ` Ævar Arnfjörð Bjarmason [this message]
2018-08-02 15:06 ` René Scharfe
2018-08-02 15:16 ` René Scharfe
2018-08-02 15:24 ` Junio C Hamano
2018-08-02 15:31 ` Junio C Hamano
2018-08-02 16:50 ` René Scharfe
2018-08-02 16:54 ` Jeff King
2018-08-02 18:46 ` René Scharfe
2018-08-02 19:17 ` [PATCH 1/6] add, update-index: fix --chmod argument help René Scharfe
2018-08-02 20:41 ` Ævar Arnfjörð Bjarmason
2018-08-02 20:59 ` Ramsay Jones
2018-08-02 21:17 ` Junio C Hamano
2018-08-02 21:04 ` Andrei Rybak
2018-08-02 21:16 ` Junio C Hamano
2018-08-02 19:17 ` [PATCH 2/6] difftool: remove angular brackets from " René Scharfe
2018-08-02 19:17 ` [PATCH 3/6] pack-objects: specify --index-version argument help explicitly René Scharfe
2018-08-02 19:17 ` [PATCH 4/6] send-pack: specify --force-with-lease " René Scharfe
2018-08-02 19:18 ` [PATCH 5/6] shortlog: correct option help for -w René Scharfe
2018-08-02 19:18 ` [PATCH 6/6] parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP René Scharfe
2018-08-02 20:05 ` Junio C Hamano
2018-08-03 8:13 ` Kerry, Richard
2018-08-03 10:39 ` Kerry, Richard
2018-08-02 20:01 ` [PATCH] push: comment on a funny unbalanced option help Junio C Hamano
2018-08-02 22:38 ` René Scharfe
2018-08-03 15:29 ` Junio C Hamano
2018-08-02 15:44 ` Re* " Junio C Hamano
2018-08-02 15:59 ` René Scharfe
2018-08-02 16:23 ` Junio C Hamano
2018-08-02 20:33 ` Ævar Arnfjörð Bjarmason
2018-08-02 20:36 ` Junio C Hamano
2018-08-03 4:42 ` René Scharfe
2018-08-03 15:30 ` Junio C Hamano
2018-08-01 22:57 ` Jonathan Nieder
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ftzwu9wg.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=bebarino@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=l.s.r@web.de \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.