D3316: exchange: use command executor for getbundle
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Fri Apr 13 19:15:30 UTC 2018
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
More information about the Mercurial-devel
mailing list