pathspec: allow querying for attributes

The pathspec mechanism is extended via the new
":(attr:eol=input)pattern/to/match" syntax to filter paths so that it
requires paths to not just match the given pattern but also have the
specified attrs attached for them to be chosen.

Based on a patch by Stefan Beller <sbeller@google.com>
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Williams
2017-03-13 11:23:21 -07:00
committed by Junio C Hamano
parent 625568cd88
commit b0db704652
7 changed files with 382 additions and 9 deletions

17
attr.c
View File

@ -603,6 +603,23 @@ struct attr_check *attr_check_initl(const char *one, ...)
return check;
}
struct attr_check *attr_check_dup(const struct attr_check *check)
{
struct attr_check *ret;
if (!check)
return NULL;
ret = attr_check_alloc();
ret->nr = check->nr;
ret->alloc = check->alloc;
ALLOC_ARRAY(ret->items, ret->nr);
COPY_ARRAY(ret->items, check->items, ret->nr);
return ret;
}
struct attr_check_item *attr_check_append(struct attr_check *check,
const struct git_attr *attr)
{