我正在使用二分法来找到好的提交,它解决了来自上游内核代码的S4问题。但当我这样做的时候,我遇到了一个令人困惑的问题:
git bisect start
git bisect bad v4.8-rc1
git bisect good v4.7 它将采取13个步骤来完成结果。
但是我发现二分法会选择一些比v4.7标签更老的提交,这正常吗?
在我看来,二分法应该选择提交之间的v4.7标签和v4.8-rc1标签判断从时间线。
发布于 2016-08-29 10:20:15
在我看来,二分法应该选择提交之间的v4.7标签和v4.8-rc1标签判断从时间线。
这并不完全是二分法所能做的。bisect将选择包含在标签v4.8-rc1中而不包含在标记v4.7中的所有提交。如果一个分支是从v4.6创建的,并且在创建v4.7之前将更改提交给它,那么这将有所不同--但是分支不会合并到v4.7中。特别是在内核开发中,可能会有很多修改在合并之前已经提交了很长一段时间。这些提交的日期将在v4.7之前,但是它们的更改不包含在v4.7中。
重要的是,二分法以这种方式运行,而不是基于时间,因为它用于查找引入问题的提交。这也可能发生在“好”版本之前创建的提交,但尚未包含在其中。
如果您有提交,您可以使用git tag --contains <commit-hash>检查它包含在哪些标记中。最有可能的是,标记v4.7不会是该列表的一部分,这就是为什么git bisect选择这些提交的原因。
https://stackoverflow.com/questions/39197461
复制相似问题