| Crates.io | risect |
| lib.rs | risect |
| version | 0.1.0-alpha.1 |
| created_at | 2020-05-30 19:31:17.703437+00 |
| updated_at | 2020-05-30 19:31:17.703437+00 |
| description | A simple bisection tool |
| homepage | |
| repository | http://github.com/elbaro/risect |
| max_upload_size | |
| id | 247775 |
| size | 86,487 |

Risect is a bisection tool, more friendly and general than git bisect.
git bisectgit bisect command set is hard to remembergit bisect takes efforts to eye-parse its stdoutgit bisect cannot search commits of a dependencyYou can use Risect in two ways.
For example, to simulate git bisect, you can directly use git rev-list or --git flag.
1. git rev-list master~5 .. master | risect -- sh -c "git checkout {} && ./test.sh"
2. risect --git master~5 master -- sh -c "git checkout {} && ./test.sh"
The second methods provide more meta data in addition to {} such as {author-name} or {author-email}. These can be used in test commands and report formats.
--verbose--parallel <n> runs (n+1)-ary search--interactiveGit
risect --git --from HEAD~5 --to HEAD -- ./test.sh {} # all commit hash list is determined before first run
risect --git --from HEAD~5 --to HEAD --path ./submodule -- ./test.sh {} # git bisect on submodule
risect --git --from-date 2020-05-02 --to bbbb -- ./test.sh {} # commits since --from-date
risect --git --from-date 2020-05-02 --n 5 -- ./test.sh {} # 5 commits since --from-date
Dates
risect --date 2020-05-05 2020-05-20 -- ./test.sh {}
Numbers
seq 0 1.0 0.2 | risect -- ./test.sh --threshold={}
Custom
risect --custom "seq 0 1.0 0.2" -- ./test.sh --threshold={}
input: aaaaaa ... bbbbbb (50 candidates)
remaining: aadaaa ... bbebbb (20 candidates)
last success: dddddd
first failure: eeeeee
[ ] 1
[ ] 2
[ ] 3
[ ] 4
[x] 5 <- last failure
[ ] 6
[?] 7 <- running
[ ] 8
[ ] 9
[ ] 10
..
[ ] 199
[v] 200 <- first success
|...o...o...oo.....?...x..x...|