Hier ist was git config --help
sagt:
core.fscache Aktivieren Sie
für einige Vorgänge die zusätzliche Zwischenspeicherung von Dateisystemdaten.
Git für Windows verwendet dies, um lstat-Daten ganzer Verzeichnisse in großen Mengen zu lesen und zwischenzuspeichern (anstatt lstat Datei für Datei auszuführen).
Anstatt viele Dateisystemanforderungen auszuführen, wird git nur eine Anforderung ausführen, um Informationen zu allen Dateien im Verzeichnis abzurufen.
Weitere technische Beschreibungen finden Sie in Commit fscache
:
Win32: Fügen Sie einen Cache unter den lstat- und dirent-Implementierungen von mingw hinzu
Das Überprüfen des Status des Arbeitsbaums unter Windows ist aufgrund der langsamen lstat-Emulation recht langsam (git ruft lstat für jede Datei im Index einmal auf). Windows-Betriebssystem-APIs scheinen den Status ganzer Verzeichnisse viel besser zu prüfen als einzelne Dateien zu überprüfen.
Fügen Sie eine lstat-Implementierung hinzu, die einen Cache für lstat-Daten verwendet. Cachefehler lesen das gesamte übergeordnete Verzeichnis und fügen es dem Cache hinzu. Nachfolgende lstat-Aufrufe für dasselbe Verzeichnis werden direkt aus dem Cache bedient.
Implementieren Sie auch opendir / readdir / closedir, damit Verzeichnislisten im Cache erstellt und verwendet werden.
Der Cache protokolliert keine Dateisystemänderungen und stellt keine Verbindung zu modifizierenden Datei-APIs her. Daher muss er explizit für Git-Funktionen aktiviert werden, die die Arbeitskopie nicht modifizieren.