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(-)