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

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

From
Johannes Sixt <j6t@kdbg.org>
Date
Aug 22, 2019, 19:15 UTC
Message-ID
<b409d16f-c392-7f1f-79a0-e14e70148cad@kdbg.org>
In-Reply-To
<2303C0BB-C532-4560-8BCA-A05DAD97EB72@cisco.com>
Am 22.08.19 um 20:02 schrieb Saravanan Shanmugham (sarvi):
Show 6 quoted lines
> 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.
Are you saying that you commonly mount and unmount the filesystem?

Git tracks a device number in the index. Could it happen that it is different every time you mount the filesystem? Because when it is, Git reads the data and checks whether it has changed. At this time, the device number is also fixed up in the index. Thereafter, "git status" is fast because it sees from the cached file properties that no change was made and does not have to read the data.

You may set "git config core.checkStat minimal" to avoid the problem. But it may come with its own problems (certain kinds of modifications would not be noticed, although these would be hard to trigger in practice).

-- Hannes
Previous: Saravanan Shanmugham (sarvi)Next: Junio C Hamano
Message 4 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.