Thread (4 messages) 4 messages, 2 authors, 2023-07-08
STALE1082d

[PATCH 0/2] Fix attr magic combined with pathspec prefix

From: Junio C Hamano <hidden>
Date: 2023-07-07 22:10:31

Matthew Hughes noticed and reported that a pathspec that uses the
attribute magic with pathspec pattern does not work correctly.

After digging around, I found that

    $ git ls-files ":(attr:label)"

notices that the "label" attribute is set to path "sub/file" by
listing it, and combined with a pathspec pattern, i.e.

    $ git ls-files ":(attr:label)sub"

it still correctly reports "sub/file" has the "label" attribute, be
it defined in ".gitignore" or "sub/.gitignore".  The case that it
does not work is the command invocation is

    $ git ls-files ":(attr:label)sub/"

and the attribute "label" is defined in "sub/.gitattributes" for
"sub/file".

It turns out that the problematic invocation triggers the common
prefix optimization, which is totally broken for this case.

The first patch enhances the test coverage, and the second patch
fixes the broken common prefix optimization.

Junio C Hamano (2):
  t6135: attr magic with path pattern
  dir: do not feed path suffix to pathspec match

 dir.c                          | 31 ++++++-----------------
 t/t6135-pathspec-with-attrs.sh | 46 ++++++++++++++++++++++++++++++++--
 2 files changed, 52 insertions(+), 25 deletions(-)

-- 
2.41.0-318-g061c58647e
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help