2 个版本
0.1.1 | 2020 年 10 月 24 日 |
---|---|
0.1.0 | 2020 年 10 月 24 日 |
#1936 在 开发工具
120KB
2.5K SLoC
Robust Git Bisect
Robust Git Bisect 提供了 git bisect 的替代方案,它能够抵抗搜索过程中的错误。换句话说,如果比较函数有时返回错误的结果,这个项目中的搜索仍然会收敛到正确的解决方案。
这是从 Karp 和 Kleinberg 的论文 "Noisy binary search and its applications" 中的乘法权重算法改编而来,该论文可在 https://www.cs.cornell.edu/~rdk/papers/karpr2.pdf 找到,经过调整以使其确定,然后扩展到支持有向无环图。
用法
要使用 git bisect 替代方案,使用 cargo install robust-git-bisect
安装,然后 ~/.cargo/bin/robust-git-bisect $start_commit $end_commit $command_to_test_commit
如果您在寻找库版本,请参阅基于此的 robust-binary-search
crate。
性能
robust-git-bisect 与 git bisect 相比,性能有所提升(在更少的迭代次数中具有更高的准确性)
方法 | 迭代次数 | 准确性 |
---|---|---|
robust-git-bisect 以 0.99 为目标 | 29.6558 | 99.5392% |
robust-git-bisect 以 0.9 为目标 | 26.1828 | 98.8950% |
git bisect | 16.1907 | 31.7972% |
git bisect 重复测试 | 35.0465 | 86.6359% |
git bisect 重复 | 72.3674 | 86.1751% |
此测试在从 e83c516331 到 54e85e7af1 的 git 仓库上运行,模拟 9c3592cf3c 为坏提交,测试在 5% 的时间内返回错误结果。有关详细信息,请参阅 benchmark.rs。
依赖关系
~3–11MB
~97K SLoC