git bisect
来源:互联网 发布:高铁出口 知乎 编辑:程序博客网 时间:2024/05/20 00:51
bisect是git的一个参数,man里面介绍的是
"Find by binary search the change that introduced a bug."
我们还是用wine来举例子,从wine-1.1.24到wine-1.1.25之间,有303次变更,但是我们不确定是哪次变更导致Baidu HI无法使用了,如果要追查的话,就需要git bisect的帮忙了。
首先执行
git bisect start
命令,然后执行
git bisect good wine-1.1.24
此时,就版本历史就定位到1.1.24和1.1.25中间的那个版本了,如果是提交了303次,应该就是151次或者152次那个版本,这时候如果编译,测试,通过的话,执行git bisect good,版本就变更到151 + (151 / 2),如果没有通过的话,就执行git bisect bad,版本就变更到151 - (151 / 2),完全就是二分查找的过程
如果最终找到了那个出问题的patch,git会给出类似下面的提示
b9f2f9d2265616286eb7a6271852cfdcc121ae90 is first bad commit
commit b9f2f9d2265616286eb7a6271852cfdcc121ae90
Author: Aric Stewart <aric@codeweavers.com>
Date: Tue Jun 23 14:30:38 2009 +0900
wininet: Improve HTTP status 100 handling.
:040000 040000 a071c537a20a37299e6c1da7eab498c749cac58f 6204ea489fac6ceffc4f01464a4b64d24b9bb36f M dlls
"Find by binary search the change that introduced a bug."
我们还是用wine来举例子,从wine-1.1.24到wine-1.1.25之间,有303次变更,但是我们不确定是哪次变更导致Baidu HI无法使用了,如果要追查的话,就需要git bisect的帮忙了。
首先执行
git bisect start
命令,然后执行
git bisect good wine-1.1.24
git bisect bad wine-1.1.25
...
git reset
此时,就版本历史就定位到1.1.24和1.1.25中间的那个版本了,如果是提交了303次,应该就是151次或者152次那个版本,这时候如果编译,测试,通过的话,执行git bisect good,版本就变更到151 + (151 / 2),如果没有通过的话,就执行git bisect bad,版本就变更到151 - (151 / 2),完全就是二分查找的过程
如果最终找到了那个出问题的patch,git会给出类似下面的提示
b9f2f9d2265616286eb7a6271852cfdcc121ae90 is first bad commit
commit b9f2f9d2265616286eb7a6271852cfdcc121ae90
Author: Aric Stewart <aric@codeweavers.com>
Date: Tue Jun 23 14:30:38 2009 +0900
wininet: Improve HTTP status 100 handling.
:040000 040000 a071c537a20a37299e6c1da7eab498c749cac58f 6204ea489fac6ceffc4f01464a4b64d24b9bb36f M dlls
此时只需要执行git bisect reset,然后git show b9f2f9d2265616286eb7a6271852cfdcc121ae90 | patch -p1 -R,去掉这个patch,如果再次编译,测试通过的话,那就OK了,否则的话,可能就需要自己修改一下那个patch,然后提交给作者了
http://hi.baidu.com/leeight/blog/item/36e76960a2ac644deaf8f809.html
- git bisect
- git bisect
- git bisect
- git bisect
- git bisect使用
- Git bisect/blame
- git 二分查找 (git bisect)
- Fighting regressions with git bisect
- Fighting regressions with git bisect
- bisect
- 查找问题的利器 - Git Bisect
- 查找问题的利器 - Git Bisect
- git bisect快速定位版本的错误
- Git bisect 二分查找, 确定问题版本
- Git 强大的二分 debug 功能 - git bisect
- 使用git bisect去定位引入bug的代码
- 使用git bisect快速定位版本的错误
- 记一次使用 git bisect 快速定位 bug 的过程
- .PHONY makefile中的伪目标
- Castle系列教程(转)
- cscope 执行后出现 /tmp 空间不足解决方法
- 数据库事务的四大特性 AICD
- HR人员基本信息、分配信息和地址信息SQL
- git bisect
- Java中Response返回双引号和XMl内容
- Oauth验证(Tencent)
- Return Material Authorization (RMA) in Order Management
- Android性能优化总结
- android常用数据库字段描述
- 英语常用句型
- 职场五傻,有你吗?
- 花10钟看一看少走30年弯路