This goes on top of origin/jc/attr and is RFC as I did not write tests nor documentation, yet. I wanted to understand Junios series, so I built on top. The meat is in the last patch, which allows for git ls-files :(attr:-text)path/pattern # (ATTR_FALSE) git ls-files :(attr:+text)path/pattern # (ATTR_TRUE) git ls-files :(attr:eol=input)path/pattern # values must match git ls-files :(attr:!text)path/pattern # find patterns with no "text" attribute, i.e. neither FALSE, TRUE or value git ls-files :(attr:text)path/pattern # opposite of !; find files which are TRUE, FALSE or value Of course you can chain them: git ls-files :(attr:text,attr:eol=lf)path/pattern # must match both attr specs. Feedback on the parsing and design welcome, Thanks, Stefan Stefan Beller (4): 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 Documentation/gitattributes.txt | 2 +- attr.c | 2 +- attr.h | 2 + dir.c | 49 ++++++++++++ pathspec.c | 172 +++++++++++++++++++++++++++++++--------- pathspec.h | 16 ++++ 6 files changed, 203 insertions(+), 40 deletions(-) -- 2.8.2.401.g9c0faef -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html