There's been some work to improve the performance of commands using fsmonitor to skip unnecessary lstats. This has worked wonderfully for git status on our repository, and I'm trying to see if we can extend that to more commands. A profile of git stash on our repository shows a fair bit of time is spent in the "git reset --hard" that happens at the end. Most of the time there is spent running lstat in unpack-trees.c -> traverse_trees -> oneway_merge, which is a fairly generic function and used in a few places. Is there a sane way to try skipping those lstats? Does anyone have an approach they'd recommend? Or is it possible to skip the git reset --hard in some way? Any suggestions would be welcome.