previous discussion: http://public-inbox.org/git/20161012224109.23410-1-sbeller@xxxxxxxxxx http://public-inbox.org/git/20161011002115.23312-1-sbeller@xxxxxxxxxx/ This implements the discarded series': jc/attr jc/attr-more sb/pathspec-label sb/submodule-default-paths * I rebase to origin master (no merge conflicts) * I implemented the thread safe attr API in patch 27 (attr: convert to new threadsafe API) * patch 28 (attr: keep attr stack for each check) makes it actually possible to run in a multithreaded environment. * I added a test for the multithreaded when it is introduced in patch 32 (pathspec: allow querying for attributes) 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 (11): attr: make git_check_attr_counted static attr: convert to new threadsafe API attr: keep attr stack for each check Documentation: fix a typo pathspec: move long magic parsing out of prefix_pathspec pathspec: move prefix check out of the inner loop pathspec: allow querying for attributes pathspec: allow escaped query values submodule update: add `--init-default-path` switch clone: add --init-submodule=<pathspec> switch completion: clone can initialize specific submodules Documentation/config.txt | 5 + Documentation/git-clone.txt | 23 +- Documentation/git-submodule.txt | 17 +- Documentation/gitattributes.txt | 10 +- Documentation/glossary-content.txt | 20 + Documentation/technical/api-gitattributes.txt | 117 ++++-- archive.c | 26 +- attr.c | 530 ++++++++++++++++++-------- attr.h | 74 +++- builtin/check-attr.c | 65 ++-- builtin/clone.c | 36 +- builtin/pack-objects.c | 27 +- commit.c | 3 +- contrib/completion/git-completion.bash | 1 + convert.c | 45 +-- dir.c | 35 ++ git-submodule.sh | 21 +- hashmap.h | 2 + ll-merge.c | 36 +- pathspec.c | 225 +++++++++-- pathspec.h | 16 + t/t0003-attributes.sh | 26 ++ t/t6134-pathspec-with-labels.sh | 180 +++++++++ t/t7400-submodule-basic.sh | 134 +++++++ userdiff.c | 21 +- ws.c | 26 +- 26 files changed, 1313 insertions(+), 408 deletions(-) create mode 100755 t/t6134-pathspec-with-labels.sh -- 2.10.1.508.g6572022