Вот что говорит git config --help
:
core.fscache
Включите дополнительное кэширование данных файловой системы для некоторых операций.
Git для Windows использует это для массового чтения и кэширования данных lstat целых каталогов (вместо того, чтобы делать lstat файл за файлом).
Вместо того чтобы выполнять много запросов к файловой системе, git сделает только один запрос, чтобы получить информацию обо всех файлах в каталоге.
Более подробное описание можно найти в коммите, который представил fscache
:
Win32: добавить кеш ниже реализаций mstw lstat и dirent
Проверка состояния рабочего дерева в Windows довольно медленная из-за медленной эмуляции lstat (git вызывает lstat один раз для каждого файла в индексе). Похоже, API-интерфейсы операционной системы Windows намного лучше сканируют состояние целых каталогов, чем проверка отдельных файлов.
Добавьте реализацию lstat, которая использует кеш для данных lstat. Кэш пропускает чтение всего родительского каталога и добавляет его в кэш. Последующие вызовы lstat для того же каталога обслуживаются непосредственно из кэша.
Также реализуйте opendir / readdir / closedir, чтобы они создавали и использовали списки каталогов в кеше.
Кэш не отслеживает изменения файловой системы и не подключается к каким-либо изменяющим файловым API, поэтому он должен быть явно включен для функций git, которые не изменяют рабочую копию.