changeset 33819:52c7060b707a

bundle: move combineresults() from changegroup to bundle2 The results only need to be combined if they come from a bundle2. More importantly, we'll change its argument to a bundleoperation soon, and then it definitely will no longer belong in changegroup.py.
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 22 Jun 2017 13:58:20 -0700
parents 6e3a6774d998
children d765ad56081f
files mercurial/bundle2.py mercurial/changegroup.py mercurial/commands.py mercurial/exchange.py
diffstat 4 files changed, 21 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -1478,6 +1478,25 @@
     # in case of sshrepo because we don't know the end of the stream
     return changegroup.writechunks(ui, chunkiter, filename, vfs=vfs)
 
+def combinechangegroupresults(results):
+    """logic to combine 0 or more addchangegroup results into one"""
+    changedheads = 0
+    result = 1
+    for ret in results:
+        # If any changegroup result is 0, return 0
+        if ret == 0:
+            result = 0
+            break
+        if ret < -1:
+            changedheads += ret + 1
+        elif ret > 1:
+            changedheads += ret - 1
+    if changedheads > 0:
+        result = 1 + changedheads
+    elif changedheads < 0:
+        result = -1 + changedheads
+    return result
+
 @parthandler('changegroup', ('version', 'nbchanges', 'treemanifest'))
 def handlechangegroup(op, inpart):
     """apply a changegroup part on the repo
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -60,25 +60,6 @@
     """return a changegroup chunk header (string) for a zero-length chunk"""
     return struct.pack(">l", 0)
 
-def combineresults(results):
-    """logic to combine 0 or more addchangegroup results into one"""
-    changedheads = 0
-    result = 1
-    for ret in results:
-        # If any changegroup result is 0, return 0
-        if ret == 0:
-            result = 0
-            break
-        if ret < -1:
-            changedheads += ret + 1
-        elif ret > 1:
-            changedheads += ret - 1
-    if changedheads > 0:
-        result = 1 + changedheads
-    elif changedheads < 0:
-        result = -1 + changedheads
-    return result
-
 def writechunks(ui, chunks, filename, vfs=None):
     """Write chunks to a file and return its filename.
 
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -5216,7 +5216,7 @@
                                    "information"))
                 changes = [r.get('return', 0)
                            for r in op.records['changegroup']]
-                modheads = changegroup.combineresults(changes)
+                modheads = bundle2.combinechangegroupresults(changes)
             else:
                 txnname = 'unbundle\n%s' % util.hidepassword(url)
                 with repo.transaction(txnname) as tr:
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -1398,7 +1398,7 @@
 
     if pullop.fetch:
         results = [cg['return'] for cg in op.records['changegroup']]
-        pullop.cgresult = changegroup.combineresults(results)
+        pullop.cgresult = bundle2.combinechangegroupresults(results)
 
     # processing phases change
     for namespace, value in op.records['listkeys']: