# HG changeset patch # User Stanislau Hlebik <st...@fb.com> # Date 1479373181 28800 # Thu Nov 17 00:59:41 2016 -0800 # Node ID 2ac3e9d5983f18f94a1df84317d1d2f1bd9b88b8 # Parent 5af41d2c5226c36d5a1f999ff3d99d8694ae68b9 pull: use `bookmarks` bundle2 part
Apply changes from `bookmarks` part. diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -1335,9 +1335,13 @@ kwargs['cg'] = pullop.fetch if 'listkeys' in pullop.remotebundle2caps: kwargs['listkeys'] = ['phases'] - if pullop.remotebookmarks is None: - # make sure to always includes bookmark data when migrating - # `hg incoming --bundle` to using this function. + + if pullop.remotebookmarks is None: + # make sure to always includes bookmark data when migrating + # `hg incoming --bundle` to using this function. + if 'bookmarks' in pullop.remotebundle2caps: + kwargs['bookmarks'] = True + elif 'listkeys' in pullop.remotebundle2caps: kwargs['listkeys'].append('bookmarks') # If this is a full pull / clone and the server supports the clone bundles @@ -1365,10 +1369,23 @@ _pullbundle2extraprepare(pullop, kwargs) bundle = pullop.remote.getbundle('pull', **kwargs) try: - op = bundle2.processbundle(pullop.repo, bundle, pullop.gettransaction) + bundleopbehavior = { + 'processbookmarksmode': 'diverge', + 'explicitbookmarks': pullop.explicitbookmarks, + 'remotepath': pullop.remote.url(), + } + op = bundle2.bundleoperation(pullop.repo, pullop.gettransaction, + behavior=bundleopbehavior) + op = bundle2.processbundle(pullop.repo, bundle, + pullop.gettransaction, op=op) except error.BundleValueError as exc: raise error.Abort(_('missing support for %s') % exc) + # `bookmarks` part was in bundle and it was applied to the repo. No need to + # apply bookmarks one more time + if 'bookmarks' in kwargs and kwargs['bookmarks']: + pullop.stepsdone.add('bookmarks') + if pullop.fetch: results = [cg['return'] for cg in op.records['changegroup']] pullop.cgresult = changegroup.combineresults(results) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel