Skip to content
  • Martin von Zweigbergk's avatar
    evolve: use merge.update() for resolving phase divergence · 63148e999562
    Martin von Zweigbergk authored
    Iterating over the manifest when tree manifests and narrowness is in
    play produces entries for paths outside the narrowspec that represent
    trees. For example, if the tests/ directory of the hg repo was not in
    the narrowspec (and the hg repo was using tree manifests, which it
    doesn't), then there would be a "tests/" entry in the manifest. The
    merge code deals with some of these cases. For example, it's valid to
    do a merge if only the local side changes directories outside the
    narrowspec. That allows rebasing a local commit onto a public commit
    that had changes to the excluded paths to work.
    
    However, _resolvephasedivergent() was iterating of the manifests,
    which resulted in crashes for some of our users when they tried to
    resolve phase-divergent commits (actually content-divergent commits
    that became phase-divergent after the intermediate rebase). We can fix
    that by relying on merge.update(), since that already handles this
    case.
    
    [This re-install a changeset backed out for compatibility reason]
    63148e999562
To find the state of this project's repository at the time of any of these versions, check out the tags.