gpt4 book ai didi

mercurial - Mercurial : How to walk through changsets incrementally?

转载 作者:行者123 更新时间:2023-12-03 06:57:02 25 4
gpt4 key购买 nike

我是 Mercurial 新手。我有一个功能以前可以用,但现在不行了。我想逐步恢复更改,直到达到有效的修订版为止。我不太确定最好的方法是什么。

我尝试将存储库克隆到旧版本,发现它可以在那里工作。那么...我现在如何更新后续更改?在克隆的存储库中,defaulttip 版本是我将其克隆到的版本。

我需要应用补丁吗?搁置变更?我不太确定。

最佳答案

您应该使用bisect command快速找出您的功能何时停止工作。其工作原理如下:

首先重置二等分状态并将当前工作目录父版本标记为错误:

hg bisect --reset
hg bisect --bad

现在猜测一下您认为该功能何时有效。如果您认为 6 月 1 日有效,那么您可以这样做

hg update -d '<Jun 1'

update command是您用来更新工作目录以匹配给定变更集的内容。请参阅hg help dates获取日期格式列表。您现在应该测试此版本,如果该功能在这里有效,那么您将其标记为良好:

hg bisect --good

如果该功能在此变更集中不起作用,则将其标记为不良并进一步更新到过去:

hg bisect --bad
hg update -d '<May 1'

重复此操作,直到找到好的修订版本。当您找到好的修订版时,Mercurial 可以开始帮助您:好变更集和坏变更集之间的变更集必须包含错误。 Mercurial 将帮助您跟踪候选变更集列表,并帮助您将列表范围缩小到单个变更集。它通过将您更新到大致位于候选者中间的变更集并要求您测试此变更集来实现此目的。

测试后,您将变更集标记为好或坏。如果您将其标记为好,那么您就知道该错误位于更远的将来,如果您将其标记为坏,则该错误位于更远的过去。无论哪种情况,您都会在每一步中剔除大约一半的候选人!这意味着您只需 10 个步骤即可测试 1024 个候选者 - 这就是对数的力量 :-) Mercurial 将跟踪候选者并在每次测试后将您更新到新位置。

完整的 session 可能如下所示(我只是在这里随机地说好/坏):

% hg bisect --reset% hg bisect --bad% hg update -r -10061 files updated, 0 files merged, 9 files removed, 0 files unresolved% hg bisect --goodTesting changeset 11414:0fa4474bdc2f (99 changesets remaining, ~6 tests)46 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --goodTesting changeset 11439:778377be3662 (50 changesets remaining, ~5 tests)17 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --badTesting changeset 11428:4d03c3680400 (25 changesets remaining, ~4 tests)6 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --badTesting changeset 11420:a99ef3711890 (13 changesets remaining, ~3 tests)3 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --badTesting changeset 11417:6f1d1ed3e19a (6 changesets remaining, ~2 tests)4 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --goodTesting changeset 11418:67bb9d78f05e (3 changesets remaining, ~1 tests)1 files updated, 0 files merged, 0 files removed, 0 files unresolved% hg bisect --badThe first bad revision is:changeset:   11418:67bb9d78f05euser:        Matt Mackall date:        Mon Jun 21 13:25:42 2010 -0500summary:     merge: sort arguments to stabilize the ancestor search

关于mercurial - Mercurial : How to walk through changsets incrementally?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com