Mercurial > hg-stable
diff mercurial/exchange.py @ 35765:56c30b31afbe
streamclone: add support for cloning non append-only file
The phaseroots are stored in a non append-only file in the repository. We
include them in the stream too. Since they are not append-only, we have to
keep a copy around while we hold the lock to be able to stream them later.
Since phase get exchanged within the stream we can skip requesting them
independently.
As a side effect, this will fixes issue5648 once the feature is enabled by
default.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 18 Jan 2018 00:50:02 +0100 |
parents | 7eedbd5d4880 |
children | c97639ad6874 |
line wrap: on
line diff
--- a/mercurial/exchange.py Thu Jan 18 02:28:44 2018 +0100 +++ b/mercurial/exchange.py Thu Jan 18 00:50:02 2018 +0100 @@ -1465,6 +1465,7 @@ kwargs['cg'] = False kwargs['stream'] = True pullop.stepsdone.add('changegroup') + pullop.stepsdone.add('phases') else: # pulling changegroup @@ -1472,15 +1473,15 @@ kwargs['cg'] = pullop.fetch - legacyphase = 'phases' in ui.configlist('devel', 'legacy.exchange') - hasbinaryphase = 'heads' in pullop.remotebundle2caps.get('phases', ()) - if (not legacyphase and hasbinaryphase): - kwargs['phases'] = True - pullop.stepsdone.add('phases') + legacyphase = 'phases' in ui.configlist('devel', 'legacy.exchange') + hasbinaryphase = 'heads' in pullop.remotebundle2caps.get('phases', ()) + if (not legacyphase and hasbinaryphase): + kwargs['phases'] = True + pullop.stepsdone.add('phases') - if 'listkeys' in pullop.remotebundle2caps: - if 'phases' not in pullop.stepsdone: - kwargs['listkeys'] = ['phases'] + if 'listkeys' in pullop.remotebundle2caps: + if 'phases' not in pullop.stepsdone: + kwargs['listkeys'] = ['phases'] bookmarksrequested = False legacybookmark = 'bookmarks' in ui.configlist('devel', 'legacy.exchange')