如何自动化hg bisect - 扩展以追随共同的祖先?

Lon*_* Vu 4 mercurial

通常情况下,在hg bisect -c "my command"我收到笔记的最后说我应该hg bisect --extend <ancestor_cset>继续深入地继续我的二分行.

我正在使用mercurial 2.1.2.在mercurial 2.1之前,我的消息是使用hg update而不是hg bisect --extend

它变得非常烦人,罪魁祸首cset像10级深,所以我必须手动执行此命令10次hg bisect --extend <ancestor_cset> && hg bisect -c "my command".

有没有办法只是自动化--extend部分并携带一个二分,直到找到罪魁祸首cset?

Mar*_*nen 7

Bisect不会超出最初的变更集范围.因此,如果您最初将变更集10设置为良好且变换20变为差,并且在几次迭代之后cs 12被发现不良但是与cs 5合并,则bisect将停止. --extend然后用于扩展最初10-20之外的范围.如果要搜索整个范围,请将cs 0设置为good并将tip设置为bad,您永远不需要使用extend.

请考虑以下历史记录.变更集4引入了"错误".

@  12:8ae1fff407c8:bad6
|
o  11:27edd4ba0a78:bad5
|
o    10:312ba3d6eb29:bad4
|\
| o  9:68ae20ea0c02:good33
| |
| o  8:916e977fa594:good32
| |
| o  7:b9d00094223f:good31
| |
o |  6:a7cab1800465:bad3
| |
o |  5:a84e45045a29:bad2
| |
o |  4:d0a381a67072:bad1
| |
o |  3:54349a6276cc:good4
|/
o  2:4588e394e325:good3
|
o  1:de79725cb39a:good2
|
o  0:2641cc78ce7a:good1
Run Code Online (Sandbox Code Playgroud)

现在,如果我将变更集7标记为良好并且提示为坏,则将10作为第一个不良变更集找到,但它是合并并建议将搜索扩展到变更集2(共同祖先):

C:\data>hg bisect -r
C:\data>hg bisect -g 7
C:\data>hg bisect -b tip
Testing changeset 9:68ae20ea0c02 (5 changesets remaining, ~2 tests)
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

C:\data>hg bisect -c check.bat
Changeset 9:68ae20ea0c02: good
Changeset 10:312ba3d6eb29: bad
The first bad revision is:
changeset:   10:312ba3d6eb29
parent:      9:68ae20ea0c02
parent:      6:a7cab1800465
summary:     bad4

Not all ancestors of this changeset have been checked.
Use bisect --extend to continue the bisection from
the common ancestor, 4588e394e325.
Run Code Online (Sandbox Code Playgroud)

但是如果我将changeset 0设置为好并且提示为坏,那么它会在没有扩展的情况下找到正确的变更集:

C:\data>hg bisect -g 0
C:\data>hg bisect -b tip
Testing changeset 6:a7cab1800465 (12 changesets remaining, ~3 tests)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

C:\data>hg bisect -c check.bat
Changeset 6:a7cab1800465: bad
Changeset 3:54349a6276cc: good
Changeset 4:d0a381a67072: bad
The first bad revision is:
changeset:   4:d0a381a67072
summary:     bad1
Run Code Online (Sandbox Code Playgroud)