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

Re: git 2.34.0: Behavior of `**` in gitignore is different from previous versions.

From
Johannes Sixt <j6t@kdbg.org>
Date
Nov 19, 2021, 20:05 UTC
Message-ID
<190a1fea-124d-2e85-38ea-9dab87f3e377@kdbg.org>
In-Reply-To
<72fffbff-16f7-fa17-b212-67aae9e1b034@gmail.com>
Am 19.11.21 um 15:51 schrieb Derrick Stolee:
Show 14 quoted lines
> What is unclear to me is what exactly "match a directory" means.
> If we ignore a directory, then we ignore everything inside it (until
> another pattern says we should care about it), but the converse
> should also hold: if we have a pattern like "!data/**/", then that
> should mean "include everything inside data/<A>/ where <A> is any
> directory name".
> 
> My inability to form a mental model where the existing behavior
> matches the documented specification is an indicator that this was
> changed erroneously. A revert patch is included at the end of this
> message.
> 
> If anyone could help clarify my understanding here, then maybe
> there is room for improving the documentation.

You form a wrong mental model when you start with the grand picture of a working tree. That is, when you say

- here I have theeeeeese many files and directories,
- and I want to ignore some: foo/**/,
- but I don't want to ignore others: !bar/**/.

This forms the wrong mental model because that is not how Git sees the working tree: it never has a grand picture of all of its contents.

Git only ever sees the contents of one directory. When Git determines that a sub-directory is ignored, then that one's contents are never inspected, and there is no opportunity to un-ignore some of the sub-directory's contents.

-- Hannes
Previous: Danial AlihosseiniNext: Derrick Stolee
Message 7 of 13 in “git 2.34.0: Behavior of `**` in gitignore is different from previous versions.”
  1. Danial AlihosseiniNov 18, 2021
  2. Jeff KingNov 18, 2021
  3. Derrick StoleeNov 18, 2021
  4. Danial AlihosseiniNov 19, 2021
  5. Derrick StoleeNov 19, 2021
  6. Danial AlihosseiniNov 19, 2021
  7. Johannes SixtNov 19, 2021
  8. Derrick StoleeNov 19, 2021
  9. Ævar Arnfjörð BjarmasonNov 19, 2021
  10. Chris TorekNov 20, 2021
  11. Junio C HamanoNov 21, 2021
  12. Philip OakleyNov 23, 2021
  13. Danial AlihosseiniNov 23, 2021

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.