Mercurial(hg)的二分查找 (hg bisect命令)

如果一个在代码仓库中发现了一个bug,如果能够将其定位到是某一次提交(commit)引起的,然后再来fix这个bug就会比较容易了。基本上可以说,定位到具体的问题点,就可以算解决了一半问题了。
在GIT、Mercurial(hg)等SCM工具中,提供了bisect命令用于二分查找(binary section search),只需要通过命令告诉GIT或Mercurial工具就可自动帮我们checkout到对应的中间版本之下,然后通过自己试验,循环地运行bisect命令,即可较快地找到哪个commit引入的bug(或者fix了某个bug)。
今天刚好就通过Mercurial (hg)的 “hg bisect”命令查找到了一个commit,它修复Xen-unstable tree里面的nested virtualization中L2 guest的AVX指令不能正常执行的bug。 BTW,这个changeset是:changeset 25789:825f78461622
可以通过 “man hg”命令,然后找到bisect命令的解释,使用起来非常方便的。

下面是使用hg bisect命令进行二分查找的过程示例:

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*