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