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

REVISION SUMMARY
  The code consuming the bundle has been moved to inside the
  context manager, as that is supposed to be part of the API.
  (Although it doesn't matter for version 1 peers.)

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/exchange.py

CHANGE DETAILS

diff --git a/mercurial/exchange.py b/mercurial/exchange.py
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -1648,17 +1648,22 @@
             kwargs['obsmarkers'] = True
             pullop.stepsdone.add('obsmarkers')
     _pullbundle2extraprepare(pullop, kwargs)
-    bundle = pullop.remote.getbundle('pull', **pycompat.strkwargs(kwargs))
-    try:
-        op = bundle2.bundleoperation(pullop.repo, pullop.gettransaction,
-                                     source='pull')
-        op.modes['bookmarks'] = 'records'
-        bundle2.processbundle(pullop.repo, bundle, op=op)
-    except bundle2.AbortFromPart as exc:
-        pullop.repo.ui.status(_('remote: abort: %s\n') % exc)
-        raise error.Abort(_('pull failed on remote'), hint=exc.hint)
-    except error.BundleValueError as exc:
-        raise error.Abort(_('missing support for %s') % exc)
+
+    with pullop.remote.commandexecutor() as e:
+        args = dict(kwargs)
+        args['source'] = 'pull'
+        bundle = e.callcommand('getbundle', args).result()
+
+        try:
+            op = bundle2.bundleoperation(pullop.repo, pullop.gettransaction,
+                                         source='pull')
+            op.modes['bookmarks'] = 'records'
+            bundle2.processbundle(pullop.repo, bundle, op=op)
+        except bundle2.AbortFromPart as exc:
+            pullop.repo.ui.status(_('remote: abort: %s\n') % exc)
+            raise error.Abort(_('pull failed on remote'), hint=exc.hint)
+        except error.BundleValueError as exc:
+            raise error.Abort(_('missing support for %s') % exc)
 
     if pullop.fetch:
         pullop.cgresult = bundle2.combinechangegroupresults(op)



To: indygreg, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to