git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 7, 2023, 22:04 UTC
Message-ID
<20230707220457.3655121-1-gitster@pobox.com>

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
Next: Junio C Hamano
Message 1 of 9 in “Fix attr magic combined with pathspec prefix”
  1. 0/2 Fix attr magic combined with pathspec prefixJunio C Hamano, Jul 7, 2023
  2. 2/2 dir: do not feed path suffix to pathspec matchJunio C Hamano, Jul 7, 2023
  3. dir: do not feed path suffix to pathspec matchJunio C Hamano, Jul 7, 2023
  4. René ScharfeJul 8, 2023
  5. dir: match "attr" pathspec magic with correct pathsJunio C Hamano, Jul 8, 2023
  6. René ScharfeJul 9, 2023
  7. Junio C HamanoJul 9, 2023
  8. René ScharfeJul 8, 2023
  9. 1/2 t6135: attr magic with path patternJunio C Hamano, Jul 7, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.