hgext3rd/topic/discovery.py
changeset 3689 415c872d3308
parent 3678 d725fe3e3989
child 3917 ca7f02c9fa57
--- a/hgext3rd/topic/discovery.py	Thu Apr 19 14:01:24 2018 +0200
+++ b/hgext3rd/topic/discovery.py	Thu Apr 19 14:14:34 2018 +0200
@@ -19,34 +19,22 @@
 except ImportError: # <= hg-4.5
     from mercurial import wireprotov1server as wireproto
 
-def _headssummary(orig, *args):
-    # In mercurial < 4.2, we receive repo, remote and outgoing as arguments
-    pushop = None
-    if len(args) == 3:
-        pushoparg = False
-        repo, remote, outgoing = args
-
+def _headssummary(orig, pushop, *args, **kwargs):
     # In mercurial > 4.3, we receive the pushop as arguments
-    elif len(args) == 1:
-        pushoparg = True
-        pushop = args[0]
-        repo = pushop.repo.unfiltered()
-        remote = pushop.remote
-    else:
-        msg = 'topic-ext _headssummary() takes 1 or 3 arguments (%d given)'
-        raise TypeError(msg % len(args))
+    repo = pushop.repo.unfiltered()
+    remote = pushop.remote
 
     publishing = ('phases' not in remote.listkeys('namespaces')
                   or bool(remote.listkeys('phases').get('publishing', False)))
     if ((publishing or not remote.capable('topics'))
             and not getattr(pushop, 'publish', False)):
-        return orig(*args)
+        return orig(pushop, *args, **kwargs)
 
     publishedset = ()
     remotebranchmap = None
     origremotebranchmap = remote.branchmap
     # < hg-4.4 do not have a --publish flag anyway
-    if pushoparg and util.safehasattr(pushop, 'remotephases'):
+    if util.safehasattr(pushop, 'remotephases'):
         publishednode = [c.node() for c in pushop.outdatedphases]
         publishedset = repo.revs('ancestors(%ln + %ln)',
                                  publishednode,
@@ -114,11 +102,8 @@
             remote.branchmap = remotebranchmap
         unxx = repo.filtered('unfiltered-topic')
         repo.unfiltered = lambda: unxx
-        if pushoparg:
-            pushop.repo = repo
-            summary = orig(pushop)
-        else:
-            summary = orig(repo, remote, outgoing)
+        pushop.repo = repo
+        summary = orig(pushop)
         for key, value in summary.iteritems():
             if ':' in key: # This is a topic
                 if value[0] is None and value[1]: