Thanks. That seems to help. Just for context, we are using a copy-on-write/cloning solution to give developers a prebuilt workspace with all the platforms fully built, as well as sources all cloned, So they are ready for incremental development. We create a ext4 diskimage, with a git clone workspace(50G) and 900G of fully built trees, then freeze that diskimage. Developers have a way to clone that diskimage(into a copy-on-write) copy of the diskimage(in 30 seconds) that they can mount and use for incremental build development. I did the following. Mounted the existing filesystem git update-index --untracked-cache git update-index --refresh Not sure what you meant by " working tree state in the diskimage" I then detached the diskimage, dropped all the caches. Remounted the diskimage. git status - The very first git status after dropping the cache now returns in in 1.54 seconds, which seems very much acceptable. I obviously need to do more read up on what/how git caches. Can you point to any documentation on what sort of information GIT caches, and how to understand debug that? I would like to understand what the above git update-index commands actually do, that is making this faster. Thanks, Sarvi Occam’s Razor Rules On 8/22/19, 11:13 AM, "Junio C Hamano" <gitster@xxxxxxxxx> wrote: "Saravanan Shanmugham (sarvi)" <sarvi@xxxxxxxxx> writes: > I suspect warming the filesystem caching is in play. > But so is the fact that walk every tree to find untracked files as well. Enable the untracked cache and "update-index --refresh", before freezing the repository + working tree state in the diskimage?