Git 2.55: FSMonitor jetzt auch für Linux

Git 2.55 ist erschienen - und das Feature, auf das viele Entwickler gewartet haben, ist endlich da: Der integrierte FSMonitor-Daemon läuft jetzt auch unter Linux. Wer mit großen Repositories arbeitet, kennt das Problem: git status dauert lange, weil Git den gesamten Working Tree scannen muss. Der FSMonitor löst das, indem er Dateisystemänderungen im Hintergrund verfolgt. Git muss dann nur noch nachfragen, was sich geändert hat, anstatt alles selbst zu prüfen.

Bei Repositories wie dem Linux-Kernel, Chromium oder Android kann das git status um das Zehnfache beschleunigen. Bislang war der Daemon nur für macOS und Windows verfügbar.

Aktivieren lässt sich die Funktion mit:

git config core.fsmonitor true
git config core.untrackedcache true

Sicherheit: Terminal-Sequenzen werden blockiert

Git blockiert ab sofort standardmäßig Terminal-Steuersequenzen aus Sideband-Ausgaben. Lediglich ANSI-Farbsequenzen bleiben erlaubt. Hintergrund ist ein mögliches Angriffsszenario, bei dem manipulierte Remote-Repositories unerwünschte Terminal-Steuerbefehle einschleusen konnten. Git 2.55 macht die Kommunikation mit Remote-Repositories dadurch sicherer.

Rust-Integration wird weiter ausgebaut

Die Entwickler treiben außerdem die Integration der Programmiersprache Rust weiter voran. Beim Erstellen von Git aus dem Quellcode wird der Rust-Compiler mit Version 2.55 standardmäßig vorausgesetzt, sofern Rust nicht ausdrücklich deaktiviert wird. Damit legt das Projekt den Grundstein für eine stärkere Nutzung von Rust innerhalb der Git-Codebasis. Parallel dazu wurde auch die xdiff-Codebasis für die Zusammenarbeit mit Rust angepasst.

git checkout -m sichert lokale Änderungen automatisch

Wer mit git checkout -m zwischen Branches wechselt, kennt das Problem: Lokale Änderungen, die sich nicht konfliktfrei übernehmen lassen, führten bislang zu einem Abbruch. Git 2.55 legt in diesem Fall nun automatisch einen Stash an. Dadurch gehen lokale Änderungen bei einem fehlgeschlagenen Branch-Wechsel nicht verloren.

Proxy-URLs und HTTPS-Proxys

Auch mehrere Fehler wurden behoben. Ungültige Proxy-URLs - etwa durch Tippfehler wie httt:// - erkennt Git nun zuverlässig und meldet sie mit einer Fehlermeldung. Außerdem beseitigt Version 2.55 eine Regression, die Verbindungen über HTTPS-Proxys beeinträchtigte.

Weitere Neuerungen

Parallele Hooks: Über die Konfiguration definierte Hook-Skripte können nun parallel ausgeführt werden, sofern sie dafür freigegeben sind. Das beschleunigt insbesondere CI-Workflows.

git format-rev: Ein neues experimentelles Kommando zum Formatieren einzelner Revisionen. Es eignet sich vor allem für Skripte und Automatisierungsaufgaben.

git history fixup: Der experimentelle Befehl git history erhält ein neues fixup-Subkommando, mit dem sich Änderungen direkt in einen früheren Commit übernehmen lassen.

git url-parse: Die interne URL-Parsing-Logik steht jetzt auch als eigenes Subkommando zur Verfügung.

Graph-Lane-Begrenzung: git log --graph kann die Anzahl der dargestellten Graph-Lanes begrenzen und macht damit komplexe Commit-Historien übersichtlicher.

ort-Merge-Backend: Weitere Performance-Optimierungen beschleunigen Merge-Vorgänge.

Download und Quellcode gibt es auf git-scm.com.