This is a series that * replaces jc/attr-more. I did merge one fixup! commit at the appropriate place, as well as resolving a minor merge conflict when rebasing to the latest master * revamps the API of the attr subsystem, such that it can be made thread safe in a later step easily, because the expected changes are only in attr.c I think this is a start to the minimal set of changes such that we can rebase sb/pathspec-label and sb/submodule-default-paths on top of these eventually. Thanks, Stefan Junio C Hamano (24): commit.c: use strchrnul() to scan for one line attr.c: use strchrnul() to scan for one line attr.c: update a stale comment on "struct match_attr" attr.c: explain the lack of attr-name syntax check in parse_attr() attr.c: complete a sentence in a comment attr.c: mark where #if DEBUG ends more clearly attr.c: simplify macroexpand_one() attr.c: tighten constness around "git_attr" structure attr.c: plug small leak in parse_attr_line() attr: rename function and struct related to checking attributes attr: (re)introduce git_check_attr() and struct git_attr_check attr: convert git_all_attrs() to use "struct git_attr_check" attr: convert git_check_attrs() callers to use the new API attr: retire git_check_attrs() API attr: add counted string version of git_check_attr() attr: add counted string version of git_attr() attr: expose validity check for attribute names attr.c: add push_stack() helper attr.c: pass struct git_attr_check down the callchain attr.c: rename a local variable check attr.c: correct ugly hack for git_all_attrs() attr.c: introduce empty_attr_check_elems() attr.c: always pass check[] to collect_some_attrs() attr.c: outline the future plans by heavily commenting Nguyễn Thái Ngọc Duy (1): attr: support quoting pathname patterns in C style Stefan Beller (3): attr: make git_attr_counted static attr: make git_check_attr_counted static attr: convert to new threadsafe API Documentation/gitattributes.txt | 8 +- Documentation/technical/api-gitattributes.txt | 114 +++++-- archive.c | 27 +- attr.c | 413 ++++++++++++++++++-------- attr.h | 69 +++-- builtin/check-attr.c | 59 ++-- builtin/pack-objects.c | 22 +- commit.c | 3 +- convert.c | 44 ++- ll-merge.c | 38 +-- t/t0003-attributes.sh | 26 ++ userdiff.c | 22 +- ws.c | 22 +- 13 files changed, 561 insertions(+), 306 deletions(-) -- 2.10.1.382.ga23ca1b.dirty