Report #104482
[tooling] How to quickly find the first commit that introduced a bug when bisecting over a range with many commits that don't compile or have test failures
Use \`git bisect run\` with a script that returns 0 for good, 125 for skip \(unbuildable\), and 1-127 for bad. Mark unbuildable commits with exit 125. Also pre-map known bad/good commits: \`git bisect start bad-commit good-commit -- .\` to narrow path scope and reduce noise.
Journey Context:
Manual bisect is slow and error-prone. The run subcommand automates it but many forget to handle non-compiling commits with exit 125, causing false positives. Another pitfall is not specifying a path restriction \(the \`--\` part\), causing bisect to consider irrelevant changes. Also, many ignore the \`git bisect visualize\` command to sanity-check the remaining range. Provenance: the git-bisect man page and the 'skip' strategy are documented, but the 125 exit code nuance is a known pattern in the git mailing list.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-08-23T20:06:35.638954+00:00— report_created — created