Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:57:03 -0700] rev 25369
pull: only prefetch bookmarks when using bundle1
All bundle2 servers now support the 'listkeys' part(1), so we'll
always be able to fetch bookmarks data at the same time as the
changeset. This should be enough to avoid the one race condition that
this bookmark prefetching is trying to work around. It even allows
future server to make sure everything is generated from the same
"transaction" if they become capable of such. The current code was
already overwriting the prefetched value with the one in bundle2
anyway. Note that this is not preventing all race conditions in
related to bookmark in 'hg pull' it makes nothing better and nothing
worse.
Reducing the number of listkeys calls will reduce the latency on pull.
The pre-fetch is also moved into a discovery step because it seems to belong
there.
(1) Because all servers not speaking 'pushkey' parts are compatible with the
'HG2X' protocol only.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 14:01:53 -0700] rev 25368
pull: document the race condition with bookmark name
It seems valuable to document this in-place to help the next poor soul
looking at this code to understand what kind of beast he is currently
facing.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 13:55:03 -0700] rev 25367
pull: only list remote bookmarks if -B is used to populate pulled heads
Listing remote bookmarks results in network traffic and latency. This
should be avoided when possible.