Git ships 28 built-in diff drivers (ada, bash, cpp, golang, rust, etc.) that improve hunk headers and word-diff tokenization, but none are surfaced by forges or GUI clients. Beyond built-ins, git's textconv mechanism lets you wire any command-line tool to convert binary or noisy files into readable text before diffing — enabling meaningful diffs of images (exiftool), SQLite databases, Jupyter notebooks, lockfiles, spreadsheets, and more. The post catalogs notable community-built textconv drivers, identifies gaps (Xcode .pbxproj, Godot scenes, OpenAPI specs, Protobuf descriptors), explains the configuration split between .gitattributes and [diff] config that makes drivers inherently local, and analyzes why forge support (GitHub, GitLab, Gitea) has stalled — primarily due to the arbitrary code execution risk of running user-supplied textconv commands server-side.

9m read timeFrom nesbitt.io
Post cover image
Table of contents
Built-in drivers #Custom diff drivers #Notable custom drivers #Gaps #Configuration gotcha #Forge support #

Sort: