Changes in v2: * surround the mutex initializer calls by #ifdef * mark file-local symbol static * handling of attribute stacks. Instead of storing each stack frame in a hashmap, there is a stack per attr_check instance. This will allow for easier optimizing of the stack in future patches as well as eliminates the potential for memory to grow unbounded. This is also more inline with the original vision of the attribute system refactor. Brandon Williams (8): attr: pass struct attr_check to collect_some_attrs attr: use hashmap for attribute dictionary attr: eliminate global check_all_attr array attr: remove maybe-real, maybe-macro from git_attr attr: tighten const correctness with git_attr and match_attr attr: store attribute stack in attr_check structure attr: push the bare repo check into read_attr() attr: reformat git_attr_set_direction() function Junio C Hamano (17): 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.c: add push_stack() helper attr.c: outline the future plans by heavily commenting attr: rename function and struct related to checking attributes attr: (re)introduce git_check_attr() and struct attr_check attr: convert git_all_attrs() to use "struct attr_check" attr: convert git_check_attrs() callers to use the new API attr: retire git_check_attrs() API attr: change validity check for attribute names to use positive logic Nguyễn Thái Ngọc Duy (1): attr: support quoting pathname patterns in C style Stefan Beller (1): Documentation: fix a typo Documentation/gitattributes.txt | 10 +- Documentation/technical/api-gitattributes.txt | 86 ++- archive.c | 24 +- attr.c | 854 ++++++++++++++++++-------- attr.h | 53 +- builtin/check-attr.c | 66 +- builtin/pack-objects.c | 19 +- commit.c | 3 +- common-main.c | 3 + convert.c | 25 +- ll-merge.c | 33 +- t/t0003-attributes.sh | 26 + userdiff.c | 19 +- ws.c | 19 +- 14 files changed, 800 insertions(+), 440 deletions(-) -- 2.11.0.483.g087da7b7c-goog