From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, Lars Hjemli <hjemli@gmail.com>,
Jeff King <peff@peff.net>,
Christian Couder <christian.couder@gmail.com>,
Carlos Rica <jasampler@gmail.com>,
Samuel Tardieu <sam@rfc1149.net>,
Tom Grennan <tmgrennan@gmail.com>
Subject: Re: [PATCH 3/8] tag: Change misleading --list <pattern> documentation
Date: Sat, 18 Mar 2017 11:43:47 -0700 [thread overview]
Message-ID: <xmqqmvci2zoc.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170318103256.27141-4-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Sat, 18 Mar 2017 10:32:51 +0000")
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> However, documenting this as "-l <pattern>" was never correct, as
> these both worked before Jeff's change:
>
> git tag -l 'v*'
> git tag 'v*' -l
Actually, we do not particularly care about the latter, and quite
honestly, I'd prefer we do not advertise and encourage the latter.
Most Git commands take dashed options first and then non-dashed
arguments, and so should "git tag". A more important example to
show why "-l <pattern>" that pretends <pattern> is an argument to
the option is wrong is this:
git tag -l --merged X 'v*'
and this one
> git tag --list 'v*rc*' '*2.8*'
> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
> index 74fc82a3c0..d36cd51fe2 100755
> --- a/t/t7004-tag.sh
> +++ b/t/t7004-tag.sh
> @@ -118,6 +118,18 @@ test_expect_success 'listing all tags if one exists should succeed' '
> git tag
> '
>
> +cat >expect <<EOF
> +mytag
> +EOF
> +test_expect_success 'Multiple -l or --list options are equivalent to one -l option' '
> + git tag -l -l >actual &&
> + test_cmp expect actual &&
> + git tag --list --list >actual &&
> + test_cmp expect actual &&
> + git tag --list -l --list >actual &&
> + test_cmp expect actual
> +'
OK. I do not care too deeply about this one, but somebody may want
to tighten up the command line parsing to detect conflicting or
duplicated cmdmode as an error in the future, and at that time this
will require updating. I am not sure if we want to promise that
giving multiple -l will keep working.
> +test_expect_success 'tag -l can accept multiple patterns interleaved with -l or --list options' '
> + git tag -l "v1*" "v0*" >actual &&
This is good thing to promise that we will keep it working.
> + test_cmp expect actual &&
> + git tag -l "v1*" --list "v0*" >actual &&
> + test_cmp expect actual &&
> + git tag -l "v1*" "v0*" -l --list >actual &&
> + test_cmp expect actual
I'd prefer we do *not* promise that it will keep working if you give
pattern and then later any dashed-option like -l to the command by
having tests like these.
Thanks.
next prev parent reply other threads:[~2017-03-18 18:44 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-18 10:32 [PATCH 0/8] Various changes to the "tag" command Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 1/8] tag: Remove a TODO item from the test suite Ævar Arnfjörð Bjarmason
2017-03-18 18:14 ` Junio C Hamano
2017-03-18 18:42 ` [PATCH 0/2] doc/SubmittingPatches: A couple of minor improvements Ævar Arnfjörð Bjarmason
2017-03-18 18:42 ` [PATCH 1/2] doc/SubmittingPatches: clarify the casing convention for "area: change..." Ævar Arnfjörð Bjarmason
2017-03-18 19:04 ` Junio C Hamano
2017-03-18 19:16 ` Ævar Arnfjörð Bjarmason
2017-03-18 20:07 ` Junio C Hamano
2017-03-18 18:42 ` [PATCH 2/2] doc/SubmittingPatches: show how to get a CLI commit summary Ævar Arnfjörð Bjarmason
2017-03-18 19:07 ` Junio C Hamano
2017-03-21 14:21 ` [PATCH v2 0/2] A couple of minor improvements Ævar Arnfjörð Bjarmason
2017-03-21 14:21 ` [PATCH v2 1/2] doc/SubmittingPatches: clarify the casing convention for "area: change..." Ævar Arnfjörð Bjarmason
2017-03-21 14:21 ` [PATCH v2 2/2] doc/SubmittingPatches: show how to get a CLI commit summary Ævar Arnfjörð Bjarmason
2017-03-21 15:51 ` SZEDER Gábor
2017-03-21 17:58 ` Junio C Hamano
2017-03-21 18:47 ` Ævar Arnfjörð Bjarmason
2017-03-21 20:01 ` SZEDER Gábor
2017-03-21 20:13 ` Junio C Hamano
2017-03-19 0:48 ` [PATCH 1/8] tag: Remove a TODO item from the test suite Jakub Narębski
2017-03-19 6:43 ` Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 2/8] tag: Refactor the options handling code to be less bizarro Ævar Arnfjörð Bjarmason
2017-03-18 18:35 ` Junio C Hamano
2017-03-18 19:13 ` Ævar Arnfjörð Bjarmason
2017-03-18 19:27 ` Junio C Hamano
2017-03-18 20:00 ` Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 3/8] tag: Change misleading --list <pattern> documentation Ævar Arnfjörð Bjarmason
2017-03-18 18:43 ` Junio C Hamano [this message]
2017-03-18 19:49 ` Ævar Arnfjörð Bjarmason
2017-03-20 3:44 ` Jeff King
2017-03-20 15:55 ` Junio C Hamano
2017-03-20 17:07 ` Junio C Hamano
2017-03-20 16:09 ` Ævar Arnfjörð Bjarmason
2017-03-20 16:11 ` Jeff King
2017-03-18 10:32 ` [PATCH 4/8] tag: Implicitly supply --list given another list-like option Ævar Arnfjörð Bjarmason
2017-03-20 3:55 ` Jeff King
2017-03-20 9:16 ` Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 5/8] tag: Implicitly supply --list given the -n option Ævar Arnfjörð Bjarmason
2017-03-20 4:02 ` Jeff King
2017-03-18 10:32 ` [PATCH 6/8] ref-filter: Add --no-contains option to tag/branch/for-each-ref Ævar Arnfjörð Bjarmason
2017-03-20 4:25 ` Jeff King
2017-03-20 9:32 ` Ævar Arnfjörð Bjarmason
2017-03-20 19:52 ` Jeff King
2017-03-20 20:04 ` Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 7/8] tag: Add tests for --with and --without Ævar Arnfjörð Bjarmason
2017-03-18 10:32 ` [PATCH 8/8] tag: Change --point-at to default to HEAD Ævar Arnfjörð Bjarmason
2017-03-18 18:54 ` Junio C Hamano
2017-03-18 19:52 ` Ævar Arnfjörð Bjarmason
2017-03-20 4:26 ` [PATCH 0/8] Various changes to the "tag" command Jeff King
2017-03-20 15:57 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqmvci2zoc.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=hjemli@gmail.com \
--cc=jasampler@gmail.com \
--cc=peff@peff.net \
--cc=sam@rfc1149.net \
--cc=tmgrennan@gmail.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.
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.