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!
--- a/mercurial/localrepo.py Thu Jan 23 01:21:08 2014 +0100
+++ b/mercurial/localrepo.py Mon Jan 28 15:16:49 2013 +0100
@@ -1899,7 +1899,8 @@
# 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))',
--- a/tests/test-phases-exchange.t Thu Jan 23 01:21:08 2014 +0100
+++ b/tests/test-phases-exchange.t Mon Jan 28 15:16:49 2013 +0100
@@ -92,6 +92,20 @@
|
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