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

Re: Sparse Checkout Trouble (2.5.0)

From
Derrick Stolee <stolee@gmail.com>
Date
Jan 28, 2020, 20:47 UTC
Message-ID
<e4bb20e9-ad90-3e9b-7ed2-c7793cb8cb22@gmail.com>
In-Reply-To
<CABPp-BHRAA71LmfYb61N+qAgwhtii7TSEVJksiAGnnO-4bk2dQ@mail.gmail.com>
On 1/28/2020 12:21 AM, Elijah Newren wrote:
Show 19 quoted lines
> On Sun, Jan 26, 2020 at 6:09 AM Derrick Stolee <stolee@gmail.com> wrote:
>>
>> On 1/25/2020 3:59 PM, Elijah Newren wrote:
>>> On Fri, Jan 24, 2020 at 7:41 AM Derrick Stolee <stolee@gmail.com> wrote:
>>>> I'm CC'ing Elijah because he also made changes to dir.c, and
>>>> perhaps he has some idea of what's going on.
>>>
>>> If you think it might be related to the dir.c changes, I can take a
>>> look.  I don't have any immediate ideas off the top of my head.
>>
>> The only thing I can think of is that these paths are already
>> marked as sparse, but something is requiring us to test if the
>> path can be created with the filesystem. I'll try to debug
>> more into exactly where that is. It's telling that this happens
>> both in cone mode and without.
> 
> Yeah, I'll take a look.  The exponentially slow 'status --ignored'
> report is forcing me to look at dir.c again anyway, though it's also
> delaying me from getting a chance to look at this particular report.

I made some progress, at least, in root-causing the issue. The problem bisects down to 4dc42c6c1 (mingw: refuse paths containing reserved names, 2019-12-21) [1]. CC'ing Dscho.

That commit updates is_valid_win32_path() to fail on these paths. We were _already_ calling this method even for paths outside the sparse cone, but the method didn't fail for these examples.

This means the fix is probably even more complicated: we need to not call this method when traversing paths that have the skip-worktree bit enabled. This may lead to some tiny performance gains when hydrating a very small fraction of a very large index.

Thanks, -Stolee

[1] http://github.com/git/git/commit/4dc42c6c1867a52e22f1f04a1a247b5a7538b8af
Previous: Elijah NewrenNext: Johannes Schindelin
Message 8 of 11 in “Sparse Checkout Trouble (2.5.0)”
  1. JunkYardMail1Jan 22, 2020
  2. Derrick StoleeJan 22, 2020
  3. JunkYardMail1Jan 22, 2020
  4. Derrick StoleeJan 24, 2020
  5. Elijah NewrenJan 25, 2020
  6. Derrick StoleeJan 26, 2020
  7. Elijah NewrenJan 28, 2020
  8. Derrick StoleeJan 28, 2020
  9. Johannes SchindelinJan 29, 2020
  10. Derrick StoleeJan 29, 2020
  11. Derrick StoleeJan 29, 2020

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.