[PATCH 1 of 2 STABLE] phase: properly compute ancestors of --rev on push (issue3786)
pierre-yves.david at ens-lyon.org
pierre-yves.david at ens-lyon.org
Thu Jan 23 22:48:01 UTC 2014
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1359382609 -3600
# Mon Jan 28 15:16:49 2013 +0100
# Node ID af967baa28dec969bc5d2bd1c9cc79a2bc2b0af1
# Parent 082b2930fe2ca9a003b08439524384e097acaa0a
phase: properly compute ancestors of --rev on push (issue3786)
Now that discovery is working on unfiltered changeset, I had a good occasion to
look at that bug again. This let me realise that a trivial node vs rev
comparision was the cause of this two years old bugs…
Happy second birthday phases!
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1903,11 +1903,12 @@ class localrepository(object):
# missing = ((commonheads::missingheads) - commonheads)
#
# We can pick:
# * missingheads part of common (::commonheads)
common = set(outgoing.common)
- cheads = [node for node in revs if node in common]
+ nm = self.changelog.nodemap
+ cheads = [node for node in revs if nm[node] in common]
# and
# * commonheads parents on missing
revset = unfi.set('%ln and parents(roots(%ln))',
outgoing.commonheads,
outgoing.missing)
diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t
--- a/tests/test-phases-exchange.t
+++ b/tests/test-phases-exchange.t
@@ -90,10 +90,24 @@ push from alpha to beta should update ph
|
o 1 public a-B - 548a3d25dbf0
|
o 0 public a-A - 054250a37db4
+ $ hg push -r 2 ../beta
+ pushing to ../beta
+ searching for changes
+ no changes found
+ [1]
+ $ hgph
+ @ 3 draft a-D - b555f63b6063
+ |
+ o 2 public a-C - 54acac6f23ab
+ |
+ o 1 public a-B - 548a3d25dbf0
+ |
+ o 0 public a-A - 054250a37db4
+
$ hg push ../beta
pushing to ../beta
searching for changes
no changes found
[1]
More information about the Mercurial-devel
mailing list