# HG changeset patch
# User Boris Feld
# Date 1508230905 -7200
# Tue Oct 17 11:01:45 2017 +0200
# Node ID 8c9a9eecdcd61401a1604a08a5272f7dabd4b912
# Parent 3ce0e4b51f789eff195ec900a07c1fa5e8d5c5f2
# EXP-Topic b2.bookmarks
# Available At https://bitbucket.org/octobus/mercurial-devel/
# hg pull https://bitbucket.org/octobus/mercurial-devel/ -r
8c9a9eecdcd6
pull: store binary node in pullop.remotebookmarks
The internal representation of bookmark value is binary. The fact we stored
'hex' was an implementation detail from using pushkey.
We move the values in 'pullop.remotebookmarks' to binary before adding a way to
exchange bookmarks not based on pushkey.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -3973,12 +3973,13 @@ def pull(ui, repo, source="default", **o
# not ending up with the name of the bookmark because of a race
# condition on the server. (See issue 4689 for details)
remotebookmarks = other.listkeys('bookmarks')
+remotebookmarks = bookmarks.unhexlifybookmarks(remotebookmarks)
pullopargs['remotebookmarks'] = remotebookmarks
for b in opts['bookmark']:
b = repo._bookmarks.expandname(b)
if b not in remotebookmarks:
raise error.Abort(_('remote bookmark %s not found!') % b)
-revs.append(remotebookmarks[b])
+revs.append(hex(remotebookmarks[b]))
if revs:
try:
diff --git a/mercurial/exchange.py b/mercurial/exchange.py
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -1348,7 +1348,8 @@ def _pullbookmarkbundle1(pullop):
# all known bundle2 servers now support listkeys, but lets be nice with
# new implementation.
return
-pullop.remotebookmarks = pullop.remote.listkeys('bookmarks')
+books = pullop.remote.listkeys('bookmarks')
+pullop.remotebookmarks = bookmod.unhexlifybookmarks(books)
@pulldiscovery('changegroup')
@@ -1459,7 +1460,7 @@ def _pullbundle2(pullop):
# processing bookmark update
for namespace, value in op.records['listkeys']:
if namespace == 'bookmarks':
-pullop.remotebookmarks = value
+pullop.remotebookmarks = bookmod.unhexlifybookmarks(value)
# bookmark data were either already there or pulled in the bundle
if pullop.remotebookmarks is not None:
@@ -1552,7 +1553,6 @@ def _pullbookmarks(pullop):
pullop.stepsdone.add('bookmarks')
repo = pullop.repo
remotebookmarks = pullop.remotebookmarks
-remotebookmarks = bookmod.unhexlifybookmarks(remotebookmarks)
bookmod.updatefromremote(repo.ui, repo, remotebookmarks,
pullop.remote.url(),
pullop.gettransaction,
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel