代码之家  ›  专栏  ›  技术社区  ›  Nick Heiner

Hg:如何逐步地走完这些场景?

  •  3
  • Nick Heiner  · 技术社区  · 14 年前

    我是新来的。我有一个功能,这是工作,但现在不是。我想逐步恢复更改,直到我得到一个修订工作。我不太清楚最好的办法是什么。

    我试着将回购协议克隆到一个旧版本中,发现它在那里起了作用。所以。。。现在如何更新后续更改?在克隆回购中 default tip 修订版是我克隆到的版本。

    我需要贴补丁吗?搁置更改?我不太确定。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Martin Geisler    14 年前

    你应该使用 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'
    

    测试之后,您将变更集标记为好或坏。如果你把它标记为好的,那么你就知道这个错误在未来的更远的地方,如果你把它标记为坏的,那么这个错误在过去的更远的地方。不管是哪种情况,你都要放弃 半数候选人 每一步!这意味着您只需要10个步骤就可以测试1024个候选对象——这是对数的幂:-)Mercurial将跟踪候选对象,并在每次测试后将您更新到一个新的位置。

    % hg bisect --reset
    % hg bisect --bad
    % hg update -r -100
    61 files updated, 0 files merged, 9 files removed, 0 files unresolved
    % hg bisect --good
    Testing changeset 11414:0fa4474bdc2f (99 changesets remaining, ~6 tests)
    46 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --good
    Testing changeset 11439:778377be3662 (50 changesets remaining, ~5 tests)
    17 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --bad
    Testing changeset 11428:4d03c3680400 (25 changesets remaining, ~4 tests)
    6 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --bad
    Testing changeset 11420:a99ef3711890 (13 changesets remaining, ~3 tests)
    3 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --bad
    Testing changeset 11417:6f1d1ed3e19a (6 changesets remaining, ~2 tests)
    4 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --good
    Testing changeset 11418:67bb9d78f05e (3 changesets remaining, ~1 tests)
    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
    % hg bisect --bad
    The first bad revision is:
    changeset:   11418:67bb9d78f05e
    user:        Matt Mackall 
    date:        Mon Jun 21 13:25:42 2010 -0500
    summary:     merge: sort arguments to stabilize the ancestor search
    
        2
  •  0
  •   Vadim Kotov First Zero    7 年前

    我将使用

    hg pull -r <revision> [<original repo>]
    

    一些文件 here

        3
  •  0
  •   Vadim Kotov First Zero    7 年前

    要准确找到缺少功能的版本,可以尝试 hg bisect here .

    tip default

    hg help pull