Вот что 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, которые не изменяют рабочую копию.