使用 bisect 命令查找错误
bisect
命令可帮助你跟踪引入错误的变更集。
-
重置 bisect 状态并将当前版本标记为错误(它包含错误!)
hg bisect --reset hg bisect --bad
-
回到你认为错误不存在的地步
hg update -r -200
-
现在你要测试软件,如果你的假设是正确的(错误不存在),请将修订标记为良好:
hg bisect --good
测试变更集 800:12ab34cd56ef(剩余 x 更改集,~y 测试)
-
Mercurial 更新当前版本(介于坏的和好的变更集之间的中间位置)
-
再次测试软件并适当标记当前版本。例如
hg bisect --good
测试变更集 900:21ba43dc65fe(x 更改集剩余,~y 测试)
-
…
-
继续,直到 Mercurial 将搜索范围缩小到单个变更集:
hg bisect --bad
第一个糟糕的修订是:
变更集:987:1234bad99889
用户:John Doe ____@gmail.com
日期:2016 年 7 月 28 日 16:00:00
hg bisect
命令使用其对项目修订历史的了解,按时间与要检查的变更集数量的对数进行搜索,并且在处理分支,合并或多个头时没有问题。
有时你会知道有罪的文件,你可以给 Mercurial 一个提示:
hg bisect --skip "!( file('path:foo') & file('path:bar') )"
这会跳过所有不接触目录 foo
或 bar
的修订版。