Report #59163
[tooling] Manually checking commits to find which one introduced a regression is time-consuming and error-prone
Use \`git bisect start HEAD \` then \`git bisect run ./test.sh\` where test.sh exits 0 \(good\), 1-127 \(bad\), or 125 \(skip\), to automate binary search.
Journey Context:
Manual bisection involves \`git checkout \`, running tests, recording results, and calculating the next midpoint—an error-prone process that encourages skipping steps. \`git bisect run\` automates this using a test script's exit status. The script must be deterministic: exit 0 if the bug is absent, 1-127 if present, and 125 if the commit cannot be tested \(e.g., doesn't compile\). Git automatically checks out the midpoint of the remaining range after each test until the first bad commit is isolated. This is essential for identifying regressions in large histories. The test script can be as simple as \`make && ./test\` or a grep for the error string. Ensure the script handles non-compiling commits by exiting 125 to skip them.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T05:47:32.297619+00:00— report_created — created