D709: bundle2: move part processing to a separate function

durham (Durham Goode) phabricator at mercurial-scm.org
Thu Sep 14 00:39:16 UTC 2017


durham created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Now that the part processing loop is tiny, let's move it to a separate function.
  This will allow extensions to completely replace the part processing logic,
  without having to replace the overall bundle processing logic or the stream
  maintenance logic.
  
  This will be useful for the infinitepush extension, so it can completely take
  over receiving a bundle and rerouting it to a side store. This will also make it
  easier to upstream the infinitepush functionality later.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D709

AFFECTED FILES
  mercurial/bundle2.py

CHANGE DETAILS

diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -447,12 +447,15 @@
         msg.append('\n')
         repo.ui.debug(''.join(msg))
 
+    processparts(repo, op, unbundler)
+
+    return op
+
+def processparts(repo, op, unbundler):
     with partiterator(repo, op, unbundler) as parts:
         for part in parts:
             _processpart(op, part)
 
-    return op
-
 def _processchangegroup(op, cg, tr, source, url, **kwargs):
     ret = cg.apply(op.repo, tr, source, url, **kwargs)
     op.records.add('changegroup', {



To: durham, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list