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

First Git status takes 40+ minutes, when mounting fileystem/diskimage with 50G GIT repo + 900G of builds articles

From
SSSaravanan Shanmugham (sarvi) <sarvi@cisco.com>
Date
Aug 22, 2019, 18:02 UTC
Message-ID
<2303C0BB-C532-4560-8BCA-A05DAD97EB72@cisco.com>

We have a diskimage/fileysystem that has a 50G Git repository + 900G of binary/build articles and untracked files. When we mount such a diskimage, The verify first “git status” command can take as long 40-50minutes. Subsequent “git status” finish in under 5-10 seconds.

If I had a diskimage of just the 50G source repository, and I mount and do a “git status” takes around 15 seconds.
How can we optimize this to be faster?

I suspect warming the filesystem caching is in play. But so is the fact that walk every tree to find untracked files as well.

My interest in git status is the 50G of sources/repository not the 900G of build generated articles in the workspace? I have tried adding .gitignore to whole directory trees that contain build artcles, 700G are excluded using git ignores, and that still drops the time for git status to only 30 minutes, which is high. time git status -uno --ignored=no

Any suggestions on how to root cause and optimize this case?

Thanks, Sarvi Occam’s Razor Rules

Next: Junio C Hamano
Message 1 of 7 in “First Git status takes 40+ minutes, when mounting fileystem/diskimage with 50G GIT repo + 900G of builds articles”
  1. Saravanan Shanmugham (sarvi)Aug 22, 2019
  2. Junio C HamanoAug 22, 2019
  3. Saravanan Shanmugham (sarvi)Aug 23, 2019
  4. Johannes SixtAug 22, 2019
  5. Junio C HamanoAug 22, 2019
  6. Johannes SixtAug 22, 2019
  7. Junio C HamanoAug 22, 2019

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.