Mercurial > hg
changeset 50522:58e4842fbfc1
stream-clone: bail-out earlier if stream clone is not requested
The `canperformstreamclone` function is bit messy. However it seems clearer to
me to check if a stream-clone have been requested by the client or the server
at all, before checking if a compatible protocol can be negotiated with the
server.
So I am doing some gratuitous movement so reorder conditional.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 20 May 2023 01:22:49 +0200 |
parents | f697af015683 |
children | a6543983b8f4 |
files | mercurial/streamclone.py |
diffstat | 1 files changed, 10 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/streamclone.py Sat May 20 01:19:26 2023 +0200 +++ b/mercurial/streamclone.py Sat May 20 01:22:49 2023 +0200 @@ -69,6 +69,16 @@ repo = pullop.repo remote = pullop.remote + # should we consider streaming clone at all ? + streamrequested = pullop.streamclonerequested + # If we don't have a preference, let the server decide for us. This + # likely only comes into play in LANs. + if streamrequested is None: + # The server can advertise whether to prefer streaming clone. + streamrequested = remote.capable(b'stream-preferred') + if not streamrequested: + return False, None + # Streaming clone only works on an empty destination repository if len(repo): return False, None @@ -92,17 +102,6 @@ elif bundle2 and not bundle2supported: return False, None - streamrequested = pullop.streamclonerequested - - # If we don't have a preference, let the server decide for us. This - # likely only comes into play in LANs. - if streamrequested is None: - # The server can advertise whether to prefer streaming clone. - streamrequested = remote.capable(b'stream-preferred') - - if not streamrequested: - return False, None - # In order for stream clone to work, the client has to support all the # requirements advertised by the server. #