# HG changeset patch # User Pierre-Yves David # Date 1359382609 -3600 # Node ID b396032e1bb8ee99b585f48744390df8af07d226 # Parent dcd65ce87260e55bd913966cdc2ea835ebaaf4e1 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 -r dcd65ce87260 -r b396032e1bb8 mercurial/localrepo.py --- 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))', diff -r dcd65ce87260 -r b396032e1bb8 tests/test-phases-exchange.t --- 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