Mercurial > evolve
view tests/test-evolve-content-divergent-first-changeset.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 | 83ceafbaa7d6 |
children | 88f9bbba392d |
line wrap: on
line source
$ . $TESTDIR/testlib/pythonpath.sh $ cat >> $HGRCPATH << EOF > [extensions] > evolve= > [experimental] > evolution.allowdivergence = True > EOF This test file tests the case of content-divergence resolution of changesets that have the null revision as the parent. $ hg init issue6201 $ cd issue6201 $ touch test $ hg add test $ hg commit -m test $ hg log -T '{node|short}\n' be090ea66256 $ echo a >> test $ hg amend -m div1 $ hg log -T '{node|short}\n' 79fa0eb22d65 $ hg up be090ea66256 --hidden --quiet updated to hidden changeset be090ea66256 (hidden revision 'be090ea66256' was rewritten as: 79fa0eb22d65) working directory parent is obsolete! (be090ea66256) $ echo a >> test $ echo b >> test $ hg amend -m div2 2 new content-divergent changesets $ hg log -T '{node|short}\n' 4b2524b7508e 79fa0eb22d65 $ hg evolve --content-divergent --tool :other merge:[1] div1 with: [2] div2 base: [0] test 0 files updated, 1 files merged, 0 files removed, 0 files unresolved working directory is now at 62fcb3488421 $ hg evolve --list