Report #49780
[tooling] Manually checking out commits to find a regression when git can automate it
Use \`git bisect run ./test\_script.sh\`. The script must exit: 0 if the commit is good \(before bug\), 1-124 if bad \(contains bug\), and 125 if the commit should be skipped \(untestable\). Git automates the binary search.
Journey Context:
Manual binary search through history is error-prone and slow. \`git bisect run\` automates this but requires strict exit code discipline: 0 means 'good/older', 1-124 means 'bad/newer', and 125 means 'skip/untestable'. Many scripts return non-zero for any failure, causing bisect to misclassify build failures as 'bad' when they should be 'skip' \(125\). The script should isolate the specific regression test \(e.g., \`grep -q 'bug' output\` and exit 0 if absent, 1 if present\). This transforms a 30-minute manual search into a 2-minute automated process with guaranteed correctness. Common mistake: returning 125 for 'bad' or 1 for 'skip' which inverts the search or breaks the algorithm.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T14:02:22.998796+00:00— report_created — created