Mercurial > evolve
view tests/test-discovery-hidden-common.t @ 6935:954d7ea5cd67 stable
stack: when stack base is obsolete, pick any successor, even if at random
There are situations when s0 is obsolete and we also cannot pick just one
successor for it to use in stack. In such a case, let's pick the "latest"
successor from the first set.
We're assuming that obsutil.successorssets() returns data in the same order (it
should, since it makes sure to sort data internally). Keeping that in mind,
while the successor picked for s0 by this code is not based on any sort of
sophisticated logic, it should nonetheless be the same every time.
This patch is probably not going to completely break anything that was
previously working fine, because the previous behavior was to just abort with
an exception.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 16 Nov 2024 17:01:02 +0400 |
parents | a60a478ee2fa |
children | 35e769c9604f |
line wrap: on
line source
test for discovery with some remote changesets hidden locally ============================================================= $ . $TESTDIR/testlib/common.sh $ cat << EOF >> $HGRCPATH > [phases] > publish = false > [extensions] > evolve = > [experimental] > verbose-obsolescence-exchange = 1 > [ui] > logtemplate = "{rev} {node|short} {desc} {tags}\n" > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh" > EOF $ hg init server $ hg clone ssh://user@dummy/server client no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd server $ mkcommit root $ mkcommit A0 second pull: $ hg -R ../client pull pulling from ssh://user@dummy/server requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files new changesets 1e4be0697311:8aaa48160adc (2 drafts) (run 'hg update' to get a working copy) $ hg -R ../client log -G o 1 8aaa48160adc A0 tip | o 0 1e4be0697311 root more update $ hg tag --local stay-visible $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit A1 created new head $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'` 1 new obsolescence markers obsoleted 1 changesets second pull: $ hg -R ../client pull pulling from ssh://user@dummy/server searching for changes OBSEXC: looking for common markers in 2 nodes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets new changesets f6082bc4ffef (1 drafts) (run 'hg heads' to see heads) $ hg -R ../client log -G o 2 f6082bc4ffef A1 tip | o 0 1e4be0697311 root more update: $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit A2 created new head $ hg debugobsolete `getid 'desc(A1)'` `getid 'desc(A2)'` 1 new obsolescence markers obsoleted 1 changesets third pull: $ hg -R ../client pull pulling from ssh://user@dummy/server searching for changes OBSEXC: looking for common markers in 1 nodes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets new changesets c1f8d089020f (1 drafts) (run 'hg heads' to see heads) $ hg -R ../client log -G o 3 c1f8d089020f A2 tip | o 0 1e4be0697311 root