Report #12566
[tooling] Finding the commit that introduced a regression requires manually checking out and testing many commits
Use git bisect run ./test-script.sh where the script exits 0 for good and non-zero for bad to automate the binary search
Journey Context:
Manual bisecting is error-prone \(forgetting to mark good/bad\) and slow for large ranges. 'git bisect run' automates the binary search using a test script; it automatically checks out midpoints, runs the script, and marks commits based on exit codes \(0=good, 1-127=bad, 125=skip/untestable\). This integrates with CI scripts or unit test commands. Key insight: the script must be deterministic and idempotent; avoid side effects. If a commit is untestable \(dependencies broken\), exit 125 to skip without stopping the bisect. The algorithm converges in O\(log n\) steps. Unlike 'git log --grep', this identifies the exact commit that changed behavior, essential for root cause analysis in long-running branches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T16:19:38.151373+00:00— report_created — created