All of lore.kernel.org
 help / color / mirror / Atom feed
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>,
	Karthik Nayak <karthik.188@gmail.com>
Subject: Re: [PATCH v2 10/16] tag: change misleading --list <pattern> documentation
Date: Tue, 21 Mar 2017 11:45:44 -0700	[thread overview]
Message-ID: <xmqqo9wupixz.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170321125901.10652-11-avarab@gmail.com> (=?utf-8?B?IsOG?= =?utf-8?B?dmFyIEFybmZqw7Zyw7A=?= Bjarmason"'s message of "Tue, 21 Mar 2017 12:58:55 +0000")

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:

> And after Jeff's change, one that took multiple patterns:
>
>     git tag --list 'v*rc*' --list '*2.8*'

I do not think this is a correct depiction of the evolution, and is
a confusing description.  It should say

    git tag --list 'v*rc*' '*2.8*'

instead.

When the logic was still in scripted Porcelain, <pattern> _was_ an
optional argument to the "-l" option (see b867c7c2 ("git-tag: -l to
list tags (usability).", 2006-02-17) you quoted earlier).  But way
before Jeff's change, when the command was reimplemented in C and
started using parse_options(), <pattern> stopped being an argument
to the "-l" option.  What Jeff's change did was that the original
code that only took

    git tag -l 'v*rc*'

to also take

    git tag -l 'v*rc*' '*2.8*'

i.e. multiple patterns.  Yes, thanks to parse_options, you could
have -l twice on the command line, but "multiple patterns" does not
have anything to do with having to (or allowing to) use '-l'
multiple times.

> But since it's actually a toggle all of these work as well, and
> produce identical output to the last example above:
>
>     git tag --list 'v*rc*' '*2.8*'
>     git tag --list 'v*rc*' '*2.8*' --list --list --list
>     git tag --list 'v*rc*' '*2.8*' --list -l --list -l --list

So citing Jeff's change is irrelevant to explain these.  I doubt you
even need to show these variations.

> Now the documentation is more in tune with how the "branch" command
> describes its --list option since commit cddd127b9a ("branch:
> introduce --list option", 2011-08-28).
>
> Change the test suite to assert that these invocations work for the
> cases that weren't already being tested for.

These two paragraphs are relevant.

> --l <pattern>::
> ---list <pattern>::
> -	List tags with names that match the given pattern (or all if no
> -	pattern is given).  Running "git tag" without arguments also
> -	lists all tags. The pattern is a shell wildcard (i.e., matched
> -	using fnmatch(3)).  Multiple patterns may be given; if any of
> -	them matches, the tag is shown.
> +-l::
> +--list::
> +	Activate the list mode. `git tag <pattern>` would try to create a

Dont say <pattern> on this line.  It is `git tag <name>`.

> +	tag, use `git tag --list <pattern>` to list matching branches, (or

Perhaps <pattern>... instead to signal that you can give multiple
patterns?

> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
> index 958c77ab86..1de7185be0 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
> +'

The "-l/-d/-v" options follow the last-one-wins rule, no?  Perhaps
also show how this one works in this test (while retitling it)?

	git tag -d -v -l

> @@ -336,6 +348,15 @@ test_expect_success 'tag -l can accept multiple patterns' '
>  	test_cmp expect actual
>  '
>  
> +test_expect_success 'tag -l can accept multiple patterns interleaved with -l or --list options' '

Please drop "interleaved", as we are not encouraging GNUism.  We
just tolerate it but do not guarantee to keep them working.

> +	git tag -l "v1*" "v0*" >actual &&
> +	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
> +'
> +
>  test_expect_success 'listing tags in column' '
>  	COLUMNS=40 git tag -l --column=row >actual &&
>  	cat >expected <<\EOF &&

  reply	other threads:[~2017-03-21 18:48 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-21 12:58 [PATCH v2 00/16] Various changes to the "tag" command & related Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 01/16] tag doc: move the description of --[no-]merged earlier Ævar Arnfjörð Bjarmason
2017-03-21 18:22   ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 02/16] tag doc: split up the --[no-]merged documentation Ævar Arnfjörð Bjarmason
2017-03-21 18:26   ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 03/16] tag doc: reword --[no-]merged to talk about commits, not tips Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 04/16] ref-filter: make combining --merged & --no-merged an error Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 05/16] ref-filter: add test for --contains on a non-commit Ævar Arnfjörð Bjarmason
2017-03-21 18:29   ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 06/16] tag: remove a TODO item from the test suite Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 07/16] tag tests: fix a typo in a test description Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 08/16] for-each-ref: partly change <object> to <commit> in help Ævar Arnfjörð Bjarmason
2017-03-21 18:32   ` Junio C Hamano
2017-03-21 18:50     ` Ævar Arnfjörð Bjarmason
2017-03-21 19:16       ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 09/16] tag: add more incompatibles mode tests Ævar Arnfjörð Bjarmason
2017-03-21 18:32   ` Junio C Hamano
2017-03-21 18:58     ` Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 10/16] tag: change misleading --list <pattern> documentation Ævar Arnfjörð Bjarmason
2017-03-21 18:45   ` Junio C Hamano [this message]
2017-03-22 19:32     ` Ævar Arnfjörð Bjarmason
2017-03-22 21:09       ` Junio C Hamano
2017-03-22 22:08         ` Ævar Arnfjörð Bjarmason
2017-03-22 22:26           ` Junio C Hamano
2017-03-22 22:36             ` Jeff King
2017-03-22 23:43               ` Ævar Arnfjörð Bjarmason
2017-03-23  0:46                 ` Junio C Hamano
2017-03-22 21:15       ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 11/16] tag: implicitly supply --list given another list-like option Ævar Arnfjörð Bjarmason
2017-03-21 18:48   ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 12/16] tag: change --point-at to default to HEAD Ævar Arnfjörð Bjarmason
2017-03-21 18:48   ` Junio C Hamano
2017-03-21 12:58 ` [PATCH v2 13/16] ref-filter: add --no-contains option to tag/branch/for-each-ref Ævar Arnfjörð Bjarmason
2017-03-21 18:51   ` Junio C Hamano
2017-03-21 19:03     ` Ævar Arnfjörð Bjarmason
2017-03-21 12:58 ` [PATCH v2 14/16] ref-filter: reflow recently changed branch/tag/for-each-ref docs Ævar Arnfjörð Bjarmason
2017-03-21 18:53   ` Junio C Hamano
2017-03-21 19:12     ` Ævar Arnfjörð Bjarmason
2017-03-21 12:59 ` [PATCH v2 15/16] tag: implicitly supply --list given the -n option Ævar Arnfjörð Bjarmason
2017-03-21 18:59   ` Junio C Hamano
2017-03-21 19:11     ` Ævar Arnfjörð Bjarmason
2017-03-21 19:24       ` Junio C Hamano
2017-03-21 19:33         ` Ævar Arnfjörð Bjarmason
2017-03-21 12:59 ` [PATCH v2 16/16] tag: add tests for --with and --without Ævar Arnfjörð Bjarmason
2017-03-21 18:22 ` [PATCH v2 00/16] Various changes to the "tag" command & related 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=xmqqo9wupixz.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=karthik.188@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.