# HG changeset patch # User Pierre-Yves David # Date 1684538366 -7200 # Node ID f697af01568302296af58fed54bfdee12eab35bd # Parent 0558866957fa44bc614c2a28848fe099b4015b48 stream-clone: bail-out earlier if pull is partial The `canperformstreamclone` function is bit messy. However it seems clearer to me to process the very generic condition about "can we consider a stream-clone at all", before checking if a stream-clone is requested and if a compatible protocol can be negotiated with the server. So I am doing some gratuitous movement so reorder conditional. diff -r 0558866957fa -r f697af015683 mercurial/streamclone.py --- a/mercurial/streamclone.py Sat May 20 01:17:27 2023 +0200 +++ b/mercurial/streamclone.py Sat May 20 01:19:26 2023 +0200 @@ -73,6 +73,10 @@ if len(repo): return False, None + # Streaming clone only works if all data is being requested. + if pullop.heads: + return False, None + bundle2supported = False if pullop.canusebundle2: if b'v2' in pullop.remotebundle2caps.get(b'stream', []): @@ -88,10 +92,6 @@ elif bundle2 and not bundle2supported: return False, None - # Streaming clone only works if all data is being requested. - if pullop.heads: - return False, None - streamrequested = pullop.streamclonerequested # If we don't have a preference, let the server decide for us. This