# HG changeset patch # User Stanislau Hlebik <st...@fb.com> # Date 1479032456 28800 # Sun Nov 13 02:20:56 2016 -0800 # Branch stable # Node ID 606bb4a7fb818f24d52e764828ba0d0a7921f999 # Parent bf21586f26e5a41f7d8bf342d4b4c16d71dbc6d2 exchange: getbundle `bookmarks` part generator
This generator will be used during pull operation. diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -1680,6 +1680,21 @@ if chunks: bundler.newpart('hgtagsfnodes', data=''.join(chunks)) +@getbundle2partsgenerator('bookmarks') +def _getbundlebookmarkspart(bundler, repo, source, bundlecaps=None, + b2caps=None, heads=None, common=None, + **kwargs): + if not kwargs.get('bookmarks'): + return + if 'bookmarks' not in b2caps: + raise ValueError( + _('bookmarks are requested but client is not capable ' + 'of receiving it')) + + bookmarks = _getbookmarks(repo, **kwargs) + encodedbookmarks = bookmod.encodebookmarks(bookmarks) + bundler.newpart('bookmarks', data=encodedbookmarks) + def _getbookmarks(repo, **kwargs): """Returns bookmark to node mapping. diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py --- a/mercurial/wireproto.py +++ b/mercurial/wireproto.py @@ -228,7 +228,9 @@ 'bundlecaps': 'scsv', 'listkeys': 'csv', 'cg': 'boolean', - 'cbattempted': 'boolean'} + 'cbattempted': 'boolean', + 'bookmarks': 'boolean', + } # client side _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel