Mercurial > evolve
comparison tests/test-check-sdist.t @ 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 | 74665d83fb3b |
children | 318b81560f8c |
comparison
equal
deleted
inserted
replaced
6223:4298ae0b966d | 6224:17ffdea0edbb |
---|---|
33 $ find hg-evolve-*.tar.gz -size +800000c | 33 $ find hg-evolve-*.tar.gz -size +800000c |
34 hg-evolve-*.tar.gz (glob) | 34 hg-evolve-*.tar.gz (glob) |
35 | 35 |
36 $ tar -tzf hg-evolve-*.tar.gz | sed 's|^hg-evolve-[^/]*/||' | sort > files | 36 $ tar -tzf hg-evolve-*.tar.gz | sed 's|^hg-evolve-[^/]*/||' | sort > files |
37 $ wc -l files | 37 $ wc -l files |
38 356 files | 38 357 files |
39 $ fgrep debian files | 39 $ fgrep debian files |
40 tests/test-check-debian.t | 40 tests/test-check-debian.t |
41 $ fgrep __init__.py files | 41 $ fgrep __init__.py files |
42 hgext3rd/__init__.py | 42 hgext3rd/__init__.py |
43 hgext3rd/evolve/__init__.py | 43 hgext3rd/evolve/__init__.py |