A blamed commit is a suspect, not a cause. The essential diff is the smallest set of hunks from that commit which still reproduces the failure on its own. It turns "this 400 line commit broke it" into "these 3 lines broke it".
how it works
The commit diff is split into pieces at hunk boundaries, keeping each piece's file header so any subset applies as a standalone patch. crux checks out the parent commit, applies a candidate subset, and runs your behavior command on the result. Subsets that keep the behavior broken are interesting and get subdivided. Subsets that pass are discarded. The loop stops when no piece can be removed without the behavior passing again.
This is delta debugging over diff hunks. Each probe is a real execution of your command, and the probe count is printed so you know what the answer cost.
caps & refusals
Diffs above 64 hunks skip minimization and print in full, because the probe count would eat your afternoon. If the complete diff doesn't reproduce the failure on the parent, minimization refuses to run rather than minimize a diff that never broke anything. Binary files and mode changes survive as conservative keeps: a piece that can't apply cleanly is treated as required.
edit this page