Show More
@@ -250,8 +250,9 b' def _headssummary(pushop):' | |||||
250 | if repo.obsstore: |
|
250 | if repo.obsstore: | |
251 | allmissing = set(outgoing.missing) |
|
251 | allmissing = set(outgoing.missing) | |
252 | cctx = repo.set('%ld', outgoing.common) |
|
252 | cctx = repo.set('%ld', outgoing.common) | |
253 |
allfuturecommon = set(c. |
|
253 | allfuturecommon = set(c.rev() for c in cctx) | |
254 | allfuturecommon.update(allmissing) |
|
254 | torev = repo.changelog.rev | |
|
255 | allfuturecommon.update(torev(m) for m in allmissing) | |||
255 | for branch, heads in sorted(headssum.iteritems()): |
|
256 | for branch, heads in sorted(headssum.iteritems()): | |
256 | remoteheads, newheads, unsyncedheads, placeholder = heads |
|
257 | remoteheads, newheads, unsyncedheads, placeholder = heads | |
257 | result = _postprocessobsolete(pushop, allfuturecommon, newheads) |
|
258 | result = _postprocessobsolete(pushop, allfuturecommon, newheads) | |
@@ -443,7 +444,7 b' def _postprocessobsolete(pushop, futurec' | |||||
443 | public = phases.public |
|
444 | public = phases.public | |
444 | getphase = unfi._phasecache.phase |
|
445 | getphase = unfi._phasecache.phase | |
445 | ispublic = (lambda r: getphase(unfi, r) == public) |
|
446 | ispublic = (lambda r: getphase(unfi, r) == public) | |
446 | ispushed = (lambda n: n in futurecommon) |
|
447 | ispushed = (lambda n: torev(n) in futurecommon) | |
447 | hasoutmarker = functools.partial(pushingmarkerfor, unfi.obsstore, ispushed) |
|
448 | hasoutmarker = functools.partial(pushingmarkerfor, unfi.obsstore, ispushed) | |
448 | successorsmarkers = unfi.obsstore.successors |
|
449 | successorsmarkers = unfi.obsstore.successors | |
449 | newhs = set() # final set of new heads |
|
450 | newhs = set() # final set of new heads | |
@@ -469,7 +470,7 b' def _postprocessobsolete(pushop, futurec' | |||||
469 | while localcandidate: |
|
470 | while localcandidate: | |
470 | nh = localcandidate.pop() |
|
471 | nh = localcandidate.pop() | |
471 | # run this check early to skip the evaluation of the whole branch |
|
472 | # run this check early to skip the evaluation of the whole branch | |
472 | if (nh in futurecommon or ispublic(torev(nh))): |
|
473 | if (torev(nh) in futurecommon or ispublic(torev(nh))): | |
473 | newhs.add(nh) |
|
474 | newhs.add(nh) | |
474 | continue |
|
475 | continue | |
475 |
|
476 | |||
@@ -484,7 +485,7 b' def _postprocessobsolete(pushop, futurec' | |||||
484 | # * any part of it is considered part of the result by previous logic, |
|
485 | # * any part of it is considered part of the result by previous logic, | |
485 | # * if we have no markers to push to obsolete it. |
|
486 | # * if we have no markers to push to obsolete it. | |
486 | if (any(ispublic(r) for r in branchrevs) |
|
487 | if (any(ispublic(r) for r in branchrevs) | |
487 | or any(n in futurecommon for n in branchnodes) |
|
488 | or any(torev(n) in futurecommon for n in branchnodes) | |
488 | or any(not hasoutmarker(n) for n in branchnodes)): |
|
489 | or any(not hasoutmarker(n) for n in branchnodes)): | |
489 | newhs.add(nh) |
|
490 | newhs.add(nh) | |
490 | else: |
|
491 | else: |
General Comments 0
You need to be logged in to leave comments.
Login now