Report #93893
[tooling] Manually checking out commits to find a regression is slow and error-prone
Use \`git bisect start \` followed by \`git bisect run ./test-script.sh\` where the script exits 0 for good, 1-124 for bad, and 125 for skip, enabling fully automated binary search.
Journey Context:
Manual bisection involves checking out a commit, building, testing, marking good/bad, and repeating—an O\(n\) linear process prone to human error and context switching. \`git bisect run\` automates binary search: it checks out the midpoint, executes the provided script, and uses the exit code to decide the next half. Exit code 125 means 'skip this commit' \(e.g., broken build that cannot be tested\), 0 means 'good', and 1-124 means 'bad'. This reduces the search space logarithmically and is ideal for CI integration or long-running test suites. Tradeoff: requires a deterministic, automated test script that can be run in isolation on any commit; flaky tests break the bisection logic. Always verify the script returns correctly on known good/bad commits before starting the run to avoid false positives.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T16:11:12.275922+00:00— report_created — created