Git development
 help / color / mirror / Atom feed
From: Tom Grennan <tmgrennan@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, peff@peff.net, jasampler@gmail.com,
	pclouds@gmail.com
Subject: Re: [PATCHv3 3/5] tag --exclude option
Date: Wed, 22 Feb 2012 16:22:15 -0800	[thread overview]
Message-ID: <20120223002215.GE2410@tgrennan-laptop> (raw)
In-Reply-To: <7vhayjbcna.fsf@alter.siamese.dyndns.org>

On Tue, Feb 21, 2012 at 10:33:29PM -0800, Junio C Hamano wrote:
>Tom Grennan <tmgrennan@gmail.com> writes:
>
>> Example,
>>   $ git tag -l --exclude "*-rc?" "v1.7.8*"
>>   v1.7.8
>>   v1.7.8.1
>>   v1.7.8.2
>>   v1.7.8.3
>>   v1.7.8.4
>>
>> Which is equivalent to,
>>   $ git tag -l "v1.7.8*" | grep -v \\-rc.
>>   v1.7.8
>>   v1.7.8.1
>>   v1.7.8.2
>>   v1.7.8.3
>>   v1.7.8.4
>>
>> Signed-off-by: Tom Grennan <tmgrennan@gmail.com>
>
>Having an example is a good way to illustrate your explanation, but it is
>not a substitution.  Could we have at least one real sentence to describe
>what the added option *does*?
>
>This comment applies to all the patches in this series except for the
>second patch.
>

OK, I'll add the "exclude" option description from the respective man pages.

>> diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
>> index 8d32b9a..470bd80 100644
>> --- a/Documentation/git-tag.txt
>> +++ b/Documentation/git-tag.txt
>> @@ -13,7 +13,7 @@ SYNOPSIS
>>  	<tagname> [<commit> | <object>]
>>  'git tag' -d <tagname>...
>>  'git tag' [-n[<num>]] -l [--contains <commit>] [--points-at <object>]
>> -	[<pattern>...]
>> +	[--exclude <pattern>] [<pattern>...]
>>  'git tag' -v <tagname>...
>>  
>>  DESCRIPTION
>> @@ -90,6 +90,10 @@ OPTIONS
>>  --points-at <object>::
>>  	Only list tags of the given object.
>>  
>> +--exclude <pattern>::
>> +	Don't list tags matching the given pattern.  This has precedence
>> +	over any other match pattern arguments.
>
>As you do not specify what kind of pattern matching is done to this
>exclude pattern, it is important to use the same logic between positive
>and negative ones to give users a consistent UI.  Unfortunately we use
>fnmatch without FNM_PATHNAME for positive ones, so this exclude pattern
>needs to follow the same semantics to reduce confusion.
>
>This comment applies to all the patches in this series to add this option
>to existing commands that take the positive pattern.

OK, should I also describe the --no-exclude option?

>> @@ -202,6 +206,15 @@ test_expect_success \
>>  '
>>  
>>  cat >expect <<EOF
>> +v0.2.1
>> +EOF
>> +test_expect_success \
>> +	'listing tags with a suffix as pattern and prefix exclusion' '
>> +	git tag -l --exclude "v1.*" "*.1" > actual &&
>> +	test_cmp expect actual
>> +'
>
>I know you are imitating the style of surrounding tests that is an older
>parts of this script, but it is an eyesore.  More modern tests are written
>like this:
>
>	test_expect_success 'label for the test' '
>		cat >expect <<-EOF &&
>                v0.2.1
>		EOF
>	        git tag -l ... >actual &&
>		test_cmp expect actual
>	'
>
>to avoid unnecessary backslash on the first line, and have the preparation
>of test vectore _inside_ test_expect_success.  We would eventually want to
>update the older part to the newer style for consistency.
>
>Two possible ways to go about this are (1) have a "pure style" patch at
>the beginning to update older tests to a new style and then add new code
>and new test as a follow-up patch written in modern, or (2) add new code
>and new test in modern, and make a mental note to update the older ones
>after the dust settles.  Adding new tests written in older style to a file
>that already has mixed styles is the worst thing you can do.
>
>This comment applies to all the patches in this series with tests.

I'd prefer, (1) precede each "--exclude" patch with a "pure style" patch
to update the respective tests.  However, since this will result in a
lot of conflict with concurrent development;  I'll separate the test
patches from the code and documentation.  I'll then cycle on rebasing
the style and new test patches until the development of each is
quiescent.

Thanks,
TomG

  reply	other threads:[~2012-02-23  0:22 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-09 19:43 [RFC/PATCH] tag: make list exclude !<pattern> Tom Grennan
2012-02-09 19:43 ` Tom Grennan
2012-02-10  0:00   ` Tom Grennan
2012-02-10  6:34 ` Nguyen Thai Ngoc Duy
2012-02-10 18:55   ` Tom Grennan
2012-02-11  2:16     ` Tom Grennan
2012-02-11  3:06       ` Junio C Hamano
2012-02-11  7:50         ` Junio C Hamano
2012-02-11 10:13           ` Jakub Narebski
2012-02-11 14:06             ` Nguyen Thai Ngoc Duy
2012-02-11 18:31             ` Junio C Hamano
2012-02-11 19:47           ` Tom Grennan
2012-02-11  7:50         ` Michael Haggerty
2012-02-11  8:13           ` Junio C Hamano
2012-02-13  5:29             ` Michael Haggerty
2012-02-13  6:37               ` Junio C Hamano
2012-02-13  9:37                 ` Michael Haggerty
2012-02-13 10:23                   ` Junio C Hamano
2012-02-13 14:34                     ` Michael Haggerty
2012-02-13 20:29                       ` Junio C Hamano
2012-02-11 19:08         ` Tom Grennan
2012-02-22  1:28           ` [PATCHv3 0/5] " Tom Grennan
2012-02-22  1:28           ` [PATCHv3 1/5] refs: add match_pattern() Tom Grennan
2012-02-22  6:33             ` Junio C Hamano
2012-02-22 23:47               ` Tom Grennan
2012-02-23  0:17                 ` Junio C Hamano
2012-02-23  0:59                   ` Tom Grennan
2012-02-22  1:28           ` [PATCHv3 2/5] tag --points-at option wrapper Tom Grennan
2012-02-22  1:28           ` [PATCHv3 3/5] tag --exclude option Tom Grennan
2012-02-22  6:33             ` Junio C Hamano
2012-02-23  0:22               ` Tom Grennan [this message]
2012-02-23  1:00                 ` Junio C Hamano
2012-03-01  1:45                 ` [PATCH 0/5] modernize test style Tom Grennan
2012-03-03  2:15                   ` [PATCHv2 " Tom Grennan
2012-03-03  8:04                     ` Junio C Hamano
2012-03-03 17:42                       ` Tom Grennan
2012-03-03  2:15                   ` [PATCHv2 1/5] t7004 (tag): modernize style Tom Grennan
2012-03-03 21:31                     ` Johannes Sixt
2012-03-03  2:15                   ` [PATCHv2 2/5] t5512 (ls-remote): " Tom Grennan
2012-03-03  8:05                     ` Junio C Hamano
2012-03-03 17:33                       ` Tom Grennan
2012-03-03  2:15                   ` [PATCHv2 3/5] t3200 (branch): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2 4/5] t0040 (parse-options): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2 5/5] t6300 (for-each-ref): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2-w 101/105] t7004 (tag): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2-w 102/105] t5512 (ls-remote): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2-w 103/105] t3200 (branch): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2-w 104/105] t0040 (parse-options): " Tom Grennan
2012-03-03  2:15                   ` [PATCHv2-w 105/105] t6300 (for-each-ref): " Tom Grennan
2012-03-01  1:45                 ` [PATCH 1/5] " Tom Grennan
2012-03-01  6:53                   ` Johannes Sixt
2012-03-01 15:58                     ` Tom Grennan
2012-03-01  1:45                 ` [PATCH 2/5] t5512 (ls-remote): " Tom Grennan
2012-03-01  8:36                   ` Thomas Rast
2012-03-01  1:45                 ` [PATCH 3/5] t3200 (branch): " Tom Grennan
2012-03-01  1:45                 ` [PATCH 4/5] t0040 (parse-options): " Tom Grennan
2012-03-01  1:45                 ` [PATCH 5/5] t7004 (tag): " Tom Grennan
2012-03-01  1:45                 ` [PATCH-w 101/105] t6300 (for-each-ref): " Tom Grennan
2012-03-01  2:13                   ` Junio C Hamano
2012-03-01  3:20                     ` Tom Grennan
2012-03-01  3:26                       ` Junio C Hamano
2012-03-01  5:10                         ` Tom Grennan
2012-03-01  5:57                           ` Tom Grennan
2012-03-01  8:42                           ` Thomas Rast
2012-03-01 15:48                             ` Tom Grennan
2012-03-01  1:45                 ` [PATCH-w 102/105] t5512 (ls-remote): " Tom Grennan
2012-03-01  1:45                 ` [PATCH-w 103/105] t3200 (branch): " Tom Grennan
2012-03-01  1:45                 ` [PATCH-w 104/105] t0040 (parse-options): " Tom Grennan
2012-03-01  1:45                 ` [PATCH-w 105/105] t7004 (tag): " Tom Grennan
2012-02-22  1:28           ` [PATCHv3 4/5] branch --exclude option Tom Grennan
2012-02-22  1:28           ` [PATCHv3 5/5] for-each-ref " Tom Grennan
2012-02-11  2:16     ` [PATCHv2 1/4] refs: add common refname_match_patterns() Tom Grennan
2012-02-11  7:12       ` Michael Haggerty
2012-02-11 19:17         ` Tom Grennan
2012-02-13  5:00           ` Michael Haggerty
2012-02-13 17:27             ` Tom Grennan
2012-02-11  8:06       ` Junio C Hamano
2012-02-11 19:37         ` Tom Grennan
2012-02-11 23:43           ` Junio C Hamano
2012-02-13 16:29             ` Tom Grennan
2012-02-11  2:16     ` [PATCHv2 2/4] tag: use refs.c:refname_match_patterns() Tom Grennan
2012-02-11  2:16     ` [PATCHv2 3/4] branch: " Tom Grennan
2012-02-11  2:16     ` [PATCHv2 4/4] for-each-ref: " Tom Grennan

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=20120223002215.GE2410@tgrennan-laptop \
    --to=tmgrennan@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jasampler@gmail.com \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox