# HG changeset patch # User Stanislau Hlebik <st...@fb.com> # Date 1479032456 28800 # Sun Nov 13 02:20:56 2016 -0800 # Branch stable # Node ID 35096015b14e891b5d6a12af036163875bc60460 # Parent 606bb4a7fb818f24d52e764828ba0d0a7921f999 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) + bundleopinput = { + 'processbookmarksmode': 'diverge', + 'explicitbookmarks': pullop.explicitbookmarks, + 'remotepath': pullop.remote.url(), + } + op = bundle2.bundleoperation(pullop.repo, pullop.gettransaction, + input=bundleopinput) + 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