# HG changeset patch # User Manuel Jacob # Date 1594799471 -7200 # Node ID 75f6491b66a7048c6841d9d3270c0b95ca6e9640 # Parent 9719e118e4afd3445399cbbeb8fbe9d16dc86f10 discovery: weaken claim about returned common heads if ancestorsof are given As the test case shows, the claim is not true in general. diff -r 9719e118e4af -r 75f6491b66a7 mercurial/discovery.py --- a/mercurial/discovery.py Thu Jul 16 19:48:49 2020 +0200 +++ b/mercurial/discovery.py Wed Jul 15 09:51:11 2020 +0200 @@ -41,8 +41,8 @@ any longer. "heads" is either the supplied heads, or else the remote's heads. "ancestorsof" if not None, restrict the discovery to a subset defined by - these nodes. Changeset outside of this set won't be considered (and - won't appears in "common") + these nodes. Changeset outside of this set won't be considered (but may + still appear in "common"). If you pass heads and they are all known locally, the response lists just these heads in "common" and in "heads". diff -r 9719e118e4af -r 75f6491b66a7 tests/test-setdiscovery.t --- a/tests/test-setdiscovery.t Thu Jul 16 19:48:49 2020 +0200 +++ b/tests/test-setdiscovery.t Wed Jul 15 09:51:11 2020 +0200 @@ -1112,3 +1112,40 @@ * @5d0b986a083e0d91f116de4691e2aaa54d5bbec0 (*)> found 101 common and 1 unknown server heads, 1 roundtrips in *.????s (glob) * @5d0b986a083e0d91f116de4691e2aaa54d5bbec0 (*)> -R r1 outgoing r2 *-T{rev} * --config *extensions.blackbox=* exited 0 after *.?? seconds (glob) $ cd .. + +Even if the set of revs to discover is restricted, unrelated revs may be +returned as common heads. + + $ mkdir ancestorsof + $ cd ancestorsof + $ hg init a + $ hg clone a b -q + $ cd b + $ hg debugbuilddag '.:root *root *root' + $ hg log -G -T '{node|short}' + o fa942426a6fd + | + | o 66f7d451a68b + |/ + o 1ea73414a91b + + $ hg push -r 66f7d451a68b -q + $ hg debugdiscovery --verbose --rev fa942426a6fd + comparing with $TESTTMP/ancestorsof/a + searching for changes + elapsed time: * seconds (glob) + heads summary: + total common heads: 1 + also local heads: 1 + also remote heads: 1 + both: 1 + local heads: 2 + common: 1 + missing: 1 + remote heads: 1 + common: 1 + unknown: 0 + local changesets: 3 + common: 2 + missing: 1 + common heads: 66f7d451a68b