# HG changeset patch # User Stanislau Hlebik <st...@fb.com> # Date 1479807361 28800 # Tue Nov 22 01:36:01 2016 -0800 # Node ID ce7bdfedd1b36290a981228f630daabc9fc09cfd # Parent 1572af8f4545b11c8147170cb421c23547d918fc 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 @@ -1675,6 +1675,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