Report #53053
[tooling] Manually git bisecting is error-prone and slow
Use \`git bisect start HEAD && git bisect run ./test-script.sh\` where the script exits 0 for good, 1-124 for bad, 125 for skip, automating the binary search to find the exact breaking commit.
Journey Context:
Manual binary search through history \(\`git checkout \`, test, mark good/bad, calculate next midpoint\) is cognitively taxing and prone to human error—forgetting to mark a commit or miscounting the range results in incorrect bisection states that require \`git bisect reset\` and restart. \`git bisect run\` automates this by executing a provided script at each step, using the exit code to drive the search algorithm. Critical implementation detail: the test script must adhere to specific exit codes—0 indicates the current commit is good \(before bug\), 1-124 indicates bad \(after bug\), 125 indicates the current commit should be skipped \(untestable due to compilation errors or missing dependencies\), and 126-127 abort the entire bisect operation. This allows integration with build systems \(\`make && ./run-tests\`\) where compilation failure should skip rather than mark bad.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T19:32:36.826540+00:00— report_created — created