Re: [PATCHv9 4/4] pathspec: allow querying for attributes
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 20, 2016, 18:15 UTC
- Message-ID
- <xmqqd1ogegtn.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqbn41hbeq.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 8 quoted lines
> Stefan Beller <sbeller@google.com> writes: > >> +attr;; >> +After `attr:` comes a space separated list of "attribute >> +... >> ++ > > The text looks OK, but does it format well?
I didn't check this, but the remainder would look like this squashable patch.
You seem to i18ngrep for "fatal" but we are using test_must_fail for the exit status, so I am not sure if that adds much value, so the additional tests here do nto use that pattern.
diff --git a/pathspec.c b/pathspec.c index 693a5e7..0a02255 100644 --- a/pathspec.c +++ b/pathspec.c @@ -115,19 +115,19 @@ static void parse_pathspec_attr_match(struct pathspec_item *item, const char *va const char *attr = si->string; struct attr_match *am = &item->attr_match[j]; - attr_len = strcspn(attr, "="); switch (*attr) { case '!': am->match_mode = MATCH_UNSPECIFIED; attr++; - attr_len--; + attr_len = strlen(attr); break; case '-': am->match_mode = MATCH_UNSET; attr++; - attr_len--; + attr_len = strlen(attr); break; default: + attr_len = strcspn(attr, "="); if (attr[attr_len] != '=') am->match_mode = MATCH_SET; else { diff --git a/t/t6134-pathspec-with-labels.sh b/t/t6134-pathspec-with-labels.sh index 5da1a63..060047a 100755 --- a/t/t6134-pathspec-with-labels.sh +++ b/t/t6134-pathspec-with-labels.sh @@ -160,4 +160,9 @@ test_expect_success 'abort on giving invalid label on the command line' ' test_i18ngrep "fatal" actual ' +test_expect_success 'abort on asking for wrong magic' ' + test_must_fail git ls-files . ":(attr:-label=foo)" && + test_must_fail git ls-files . ":(attr:!label=foo)" +' + test_done