git bisect与附加补丁

8

假设我有以下修订版本:

  • rev 1 引入了 bug #1
  • rev 2 可能引入了 bug #2
  • rev 3 可能引入了 bug #2
  • rev 4 可能引入了 bug #2
  • rev 5 修复了 bug #1

为了验证 bug #2 是在哪个修订版本引入的,需要先修复 bug #1。

在单次 git bisect 运行过程中,是否可以通过手动应用 rev 5 补丁来确定出首次引入 bug #2 的修订版本?手动打补丁会对二分查找造成干扰吗?


4
请在二分文档中查看“使用临时修改自动二分”的内容。 - torek
3
在文档示例部分中添加Torek提到的链接:https://git-scm.com/docs/git-bisect#_examples@torek 如果您将该链接发布为答案,我会投票支持:) - ncoghlan
1
@ncoghlan:我基本上只是在复制手册页面的示例(SO答案不应该只是一个链接)... - torek
2个回答

4
在仔细阅读文档之后,可能会像这样运行(按bisect步骤):

git cherry-pick [patch-rev]
git reset --hard
git bisect [good/bad]

这听起来还不错,但是修复是否可能被修改到最后一次提交中,以避免逐步进行此步骤? - Jorch914
1
对于自动二分法,将 git-merge 替换为 git cherry-pick --no-commit,并结合问题评论中提到的 hot-fix 示例。 - ncoghlan

4

当你到达需要热修补程序(例如,您的示例中的rev 5)的区域时,请直接运行以下命令:

git cherry-pick --no-commit hot-fix 

然后正常地继续二分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接