chore(release): v0.1.0
This commit is contained in:
4 files changed
+1399
-104
No files matched your search
@@ -0,0 +1,87 @@
|
||||
# bshelper
|
||||
|
||||
A tiny TUI for reporting **good / bad / skip / abort** verdicts during a
|
||||
manual bisect.
|
||||
|
||||
Designed for `jj bisect run`, but works equally well with `git bisect run`
|
||||
since both use the same exit-code contract.
|
||||
|
||||
## Why
|
||||
|
||||
`jj bisect run` (and `git bisect run`) hand verdicts back through the
|
||||
process exit code: `0`, `1`, `125`, `127`. For automated tests that's fine,
|
||||
but for *manual* bisects you end up typing `exit 125` and remembering which
|
||||
code is which. `bshelper` replaces that with a small modal picker that says
|
||||
the words out loud.
|
||||
|
||||
```
|
||||
┌─ bshelper · jj ─────────────────────────────────┐
|
||||
│ │
|
||||
│ Commit k7q4mzpw 78fa1c2b │
|
||||
│ Author Steve Waits <steve@waits.net> │
|
||||
│ Date 2026-04-29 14:22 │
|
||||
│ │
|
||||
│ Refactor parser to remove redundant clones │
|
||||
│ ───────────────────────────────────────────── │
|
||||
│ │
|
||||
│ GOOD build / test passed │
|
||||
│ BAD build / test failed │
|
||||
│ ▶ SKIP can't tell — mark indecisive │
|
||||
│ ABORT stop the bisection now │
|
||||
│ │
|
||||
│ ───────────────────────────────────────────── │
|
||||
│ ↑/k ↓/j navigate · Enter commits: SKIP │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
cargo install bshelper
|
||||
```
|
||||
|
||||
## Use
|
||||
|
||||
With Jujutsu (preferred):
|
||||
|
||||
```sh
|
||||
jj bisect run --range 'a..b' -- bshelper
|
||||
```
|
||||
|
||||
With Git:
|
||||
|
||||
```sh
|
||||
git bisect start <bad> <good>
|
||||
git bisect run bshelper
|
||||
```
|
||||
|
||||
bshelper detects the VCS at runtime: jj first, git as a fallback. The
|
||||
selected verdict is reported via the process exit code so the parent
|
||||
`bisect run` keeps walking the history.
|
||||
|
||||
## Verdicts
|
||||
|
||||
| Verdict | Exit | Meaning |
|
||||
| ------- | ---- | ------------------------------------ |
|
||||
| GOOD | 0 | build / test passed |
|
||||
| BAD | 1 | build / test failed |
|
||||
| SKIP | 125 | can't tell — mark indecisive |
|
||||
| ABORT | 127 | stop the bisection now |
|
||||
|
||||
These match the `git bisect run` / `jj bisect run` contract exactly.
|
||||
|
||||
## Keys
|
||||
|
||||
| Key | Action |
|
||||
| --------- | --------------------- |
|
||||
| `↑` / `k` | move highlight up |
|
||||
| `↓` / `j` | move highlight down |
|
||||
| `Enter` | commit the highlight |
|
||||
|
||||
The default highlight is **SKIP** — a stray `Enter` wastes a step but never
|
||||
poisons the bisect. There is no second escape hatch: to abort, navigate to
|
||||
`ABORT` and press Enter.
|
||||
|
||||
## License
|
||||
|
||||
MIT — see [LICENSE](LICENSE).
|
||||
Reference in new issue
Block a user