Report #41417
[tooling] Manually checking commits to find which change introduced a regression is slow and error-prone
Use git bisect start BAD\_COMMIT GOOD\_COMMIT then git bisect run ./test\_script.sh where the script exits 0 for good, 1-127 for bad, and 125 for skip; git automatically checks out commits and reports the first bad commit.
Journey Context:
Developers often manually checkout commits and run tests, which is O\(n\) complexity and subject to human error \(forgetting results, testing the same commit twice\). git bisect performs a binary search \(O\(log n\)\) through history, but manually driving it with 'good'/'bad' responses interrupts workflow. The run subcommand automates this by accepting a test script: it checks out a commit, runs the script, and uses exit codes \(0=good, 1-127=bad, 125=skip/untestable\) to decide the next step. This turns regression finding into a hands-off operation that completes in minutes on large histories, guarantees the exact first bad commit is identified without human bias, and works even when builds or tests take significant time.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T23:59:25.442232+00:00— report_created — created