Mercurial > evolve
diff CHANGELOG @ 6224:17ffdea0edbb stable
evolve: look for split successors of the correct ancestor (issue6648)
Consider two changesets, 1 and 2. 1 is split into two new changesets and 2 is
pruned. If we stand on 2 and call hg evolve, _singlesuccessor() will traverse
ancestors of wdp in search of a changeset with successors to update to (it will
be 1, which was split). In case of a split, select_split_successor() gets
control. The issue is this function didn't traverse ancestors, and instead
tried to look up successors of the original changeset (i.e. 2 in our case,
which was pruned).
We can make select_split_successor() aware of _singlesuccessor() logic by using
the changeset that actually has successors without traversing ancestors again.
It's done by storing that changeset in MultipleSuccessorsError exception.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Thu, 21 Apr 2022 22:19:27 +0400 |
parents | 4298ae0b966d |
children | 810f085d0853 |
line wrap: on
line diff
--- a/CHANGELOG Sat Apr 09 20:49:43 2022 +0300 +++ b/CHANGELOG Thu Apr 21 22:19:27 2022 +0400 @@ -5,6 +5,8 @@ -------------------- * evolve: avoid updating working copy when --dry-run is given (issue6669) + * evolve: correctly pick successors of a split changeset when its child was + pruned (issue6648) * fixup: work correctly with bookmarks 10.5.0 -- 2022-02-23