Mercurial > hg
comparison mercurial/streamclone.py @ 48597:8475a1364909
stream-clone: factor computation of requirement of a stream clone
This gather code duplicated in multiple place and will make it easier to modify
it safely in the future.
Differential Revision: https://phab.mercurial-scm.org/D12028
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 14 Jan 2022 18:02:25 +0100 |
parents | 739f2ca3aa3f |
children | d9017df70135 |
comparison
equal
deleted
inserted
replaced
48596:739f2ca3aa3f | 48597:8475a1364909 |
---|---|
43 """ | 43 """ |
44 requirements = set(default_requirements) | 44 requirements = set(default_requirements) |
45 requirements -= supported_formats | 45 requirements -= supported_formats |
46 requirements.update(streamed_requirements) | 46 requirements.update(streamed_requirements) |
47 return requirements | 47 return requirements |
48 | |
49 | |
50 def streamed_requirements(repo): | |
51 """the set of requirement the new clone will have to support | |
52 | |
53 This is used for advertising the stream options and to generate the actual | |
54 stream content.""" | |
55 requiredformats = repo.requirements & repo.supportedformats | |
56 return requiredformats | |
48 | 57 |
49 | 58 |
50 def canperformstreamclone(pullop, bundle2=False): | 59 def canperformstreamclone(pullop, bundle2=False): |
51 """Whether it is possible to perform a streaming clone as part of pull. | 60 """Whether it is possible to perform a streaming clone as part of pull. |
52 | 61 |
344 Returns a tuple of (requirements, data generator). | 353 Returns a tuple of (requirements, data generator). |
345 """ | 354 """ |
346 if compression != b'UN': | 355 if compression != b'UN': |
347 raise ValueError(b'we do not support the compression argument yet') | 356 raise ValueError(b'we do not support the compression argument yet') |
348 | 357 |
349 requirements = repo.requirements & repo.supportedformats | 358 requirements = streamed_requirements(repo) |
350 requires = b','.join(sorted(requirements)) | 359 requires = b','.join(sorted(requirements)) |
351 | 360 |
352 def gen(): | 361 def gen(): |
353 yield b'HGS1' | 362 yield b'HGS1' |
354 yield compression | 363 yield compression |