diff -r ad5f2b923b0d -r af5507203d01 mercurial/bundle2.py --- a/mercurial/bundle2.py Mon Nov 13 04:22:45 2017 +0100 +++ b/mercurial/bundle2.py Sun Oct 15 18:02:11 2017 +0200 @@ -1976,6 +1976,21 @@ kwargs[key] = inpart.params[key] raise error.PushkeyFailed(partid=str(inpart.id), **kwargs) +@parthandler('bookmarks') +def handlebookmark(op, inpart): + """transmit bookmark information + + The part contains binary encoded bookmark information. The bookmark + information is applied as is to the unbundling repository. Make sure a + 'check:bookmarks' part is issued earlier to check for race condition in + such update. + + This behavior is suitable for pushing. Semantic adjustment will be needed + for pull. + """ + changes = bookmarks.binarydecode(inpart) + op.repo._bookmarks.applychanges(op.repo, op.gettransaction(), changes) + @parthandler('phase-heads') def handlephases(op, inpart): """apply phases from bundle part to repo"""