This small series extends the pathspec magic to allow users to specify attributes that files must have in order for a pathspec to 'match' a file. One potential use for this is to allow a repository to specify attributes for a set of files. The user can then specify that attribute as a pathspec to perform various operations only on that set of files. One simple example: git ls-files -- ":(attr:text)" can be used to list all of the files with the 'text' attribute. Brandon Williams (2): pathspec: allow querying for attributes pathspec: allow escaped query values Documentation/glossary-content.txt | 20 ++++ attr.c | 17 ++++ attr.h | 1 + dir.c | 43 ++++++++- pathspec.c | 165 ++++++++++++++++++++++++++++++-- pathspec.h | 16 +++- t/t6135-pathspec-with-attrs.sh | 190 +++++++++++++++++++++++++++++++++++++ 7 files changed, 442 insertions(+), 10 deletions(-) create mode 100755 t/t6135-pathspec-with-attrs.sh -- 2.12.0.246.ga2ecc84866-goog