视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用gitbisect快速定位引入错误的版本
2020-11-27 14:27:22 责编:小采
文档


现在有个项目,在一天的开发中,被某个工程师引入了一个bug,取系统并发上不去,直接锁死数据库连接。项目使用java平台,在svn上进行版本管理。我不想一个个版本code review排查,就想到了最暴力折半版本查找法,当然,在svn上做意味着要一个个版本checkout出来,这么大的项目,也是很费时的,这时,git-bisect是我唯一的选择了。

首先,把svn库导出为git库:
$ git svn clone -s http://svn.xxx.com/svn/xxxxx
然后,开始git bisect:
$ git bisect start
标记当前版本为错误:
$ git bisect bad
找到前一天的版本,做了一个tag(tag20090106),测试为正确的,标记一下:
$ git bisect good tag20090106
这时git会告诉你选取了一个中间版本,这时就开始编译,测试,如果不通过,执行:
$ git bisect bad
git会用折半方法再向前找一个中间版本,开始编译,测试,如果通过,执行:
$ git bisect good
git将继续定位revision,直到最后定位到一个引入错误的版本,这时再分析原因,再找惹麻烦的工程师PK,PK完了回来收工执行:
$ git bisect reset
git将返回到当前的HEAD.

下载本文
显示全文
专题