This set tries to speed up git status (and other commands which examine the tree state) for repositories with many submodules. Currently, submodules, unlike regular files, are examined serially despite the expense of this operation. Fsmonitor also doesn't support submodules, so there isn't a great alternative here. Atneya Nair (3): Make read_gitfile and resolve_gitfile thread safe Make ce_compare_gitlink thread-safe Preload submodule state in refresh_index builtin/init-db.c | 7 ++++--- builtin/rev-parse.c | 4 +++- config.c | 3 ++- config.h | 2 +- preload-index.c | 25 ++++++++++++++++++++++--- read-cache-ll.h | 1 + read-cache.c | 3 +++ refs.c | 9 +++++++++ repository.c | 9 +++++---- setup.c | 36 +++++++++++++++++++++++++----------- setup.h | 7 +++---- submodule.c | 32 +++++++++++++++++++++++--------- worktree.c | 27 +++++++++++++-------------- 13 files changed, 114 insertions(+), 51 deletions(-) base-commit: f41f85c9ec8d4d46de0fd5fded88db94d3ec8c11 -- 2.44.0.rc1.240.g4c46232300-goog