Patchwork [2,of,6] headssummary: directly feed the function with the 'pushop' object

login
register
mail settings
Submitter Pierre-Yves David
Date June 4, 2017, 2:49 p.m.
Message ID <60a6a3a24864486abf07.1496587770@nodosa.octopoid.net>
Download mbox | patch
Permalink /patch/21168/
State Accepted
Headers show

Comments

Pierre-Yves David - June 4, 2017, 2:49 p.m.
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1496048160 -7200
#      Mon May 29 10:56:00 2017 +0200
# Node ID 60a6a3a24864486abf07736d7c591e73a6e7e012
# Parent  df3d013cc55eeeab9296daf313d73bcafae4883c
# EXP-Topic pushrace
# Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
#              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r 60a6a3a24864
headssummary: directly feed the function with the 'pushop' object

Our goal is to be able to perform the post processing directly into the
'_headssummary' function. However before this patch the '_headsummary' function
only had access to repo, remote, outgoing while the '_postprocessobsolete'
function takes a 'pushop' object.  Experience shows that having the 'pushop'
object helps extensions so we update '_headssummary' to take a pushop
object as argument.

Patch

diff --git a/mercurial/discovery.py b/mercurial/discovery.py
--- a/mercurial/discovery.py
+++ b/mercurial/discovery.py
@@ -182,7 +182,7 @@  def findcommonoutgoing(repo, other, only
 
     return og
 
-def _headssummary(repo, remote, outgoing):
+def _headssummary(pushop):
     """compute a summary of branch and heads status before and after push
 
     return {'branch': ([remoteheads], [newheads], [unsyncedheads])} mapping
@@ -193,6 +193,9 @@  def _headssummary(repo, remote, outgoing
     - newheads: the new remote heads (known locally) with outgoing pushed
     - unsyncedheads: the list of remote heads unknown locally.
     """
+    repo = pushop.repo.unfiltered()
+    remote = pushop.remote
+    outgoing = pushop.outgoing
     cl = repo.changelog
     headssum = {}
     # A. Create set of branches involved in the push.
@@ -311,7 +314,7 @@  def checkheads(pushop):
         return
 
     if remote.capable('branchmap'):
-        headssum = _headssummary(repo, remote, outgoing)
+        headssum = _headssummary(pushop)
     else:
         headssum = _oldheadssummary(repo, remoteheads, outgoing, inc)
     newbranches = [branch for branch, heads in headssum.iteritems()