Show More
@@ -108,7 +108,7 def generateellipsesbundle2( | |||||
108 |
|
108 | |||
109 | part = bundler.newpart(b'changegroup', data=cgdata) |
|
109 | part = bundler.newpart(b'changegroup', data=cgdata) | |
110 | part.addparam(b'version', version) |
|
110 | part.addparam(b'version', version) | |
111 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
111 | if scmutil.istreemanifest(repo): | |
112 | part.addparam(b'treemanifest', b'1') |
|
112 | part.addparam(b'treemanifest', b'1') | |
113 |
|
113 | |||
114 |
|
114 | |||
@@ -163,7 +163,7 def generate_ellipses_bundle2_for_wideni | |||||
163 |
|
163 | |||
164 | part = bundler.newpart(b'changegroup', data=cgdata) |
|
164 | part = bundler.newpart(b'changegroup', data=cgdata) | |
165 | part.addparam(b'version', version) |
|
165 | part.addparam(b'version', version) | |
166 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
166 | if scmutil.istreemanifest(repo): | |
167 | part.addparam(b'treemanifest', b'1') |
|
167 | part.addparam(b'treemanifest', b'1') | |
168 |
|
168 | |||
169 |
|
169 |
@@ -23,7 +23,7 from mercurial import ( | |||||
23 | extensions, |
|
23 | extensions, | |
24 | match, |
|
24 | match, | |
25 | pycompat, |
|
25 | pycompat, | |
26 | requirements, |
|
26 | scmutil, | |
27 | store, |
|
27 | store, | |
28 | streamclone, |
|
28 | streamclone, | |
29 | util, |
|
29 | util, | |
@@ -170,7 +170,7 def onetimesetup(ui): | |||||
170 | if kind == stat.S_IFDIR: |
|
170 | if kind == stat.S_IFDIR: | |
171 | visit.append(fp) |
|
171 | visit.append(fp) | |
172 |
|
172 | |||
173 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
173 | if scmutil.istreemanifest(repo): | |
174 | for (u, e, s) in repo.store.datafiles(): |
|
174 | for (u, e, s) in repo.store.datafiles(): | |
175 | if u.startswith(b'meta/') and ( |
|
175 | if u.startswith(b'meta/') and ( | |
176 | u.endswith(b'.i') or u.endswith(b'.d') |
|
176 | u.endswith(b'.i') or u.endswith(b'.d') |
@@ -1964,10 +1964,7 def handlechangegroup(op, inpart): | |||||
1964 | nbchangesets = None |
|
1964 | nbchangesets = None | |
1965 | if b'nbchanges' in inpart.params: |
|
1965 | if b'nbchanges' in inpart.params: | |
1966 | nbchangesets = int(inpart.params.get(b'nbchanges')) |
|
1966 | nbchangesets = int(inpart.params.get(b'nbchanges')) | |
1967 | if ( |
|
1967 | if b'treemanifest' in inpart.params and not scmutil.istreemanifest(op.repo): | |
1968 | b'treemanifest' in inpart.params |
|
|||
1969 | and requirements.TREEMANIFEST_REQUIREMENT not in op.repo.requirements |
|
|||
1970 | ): |
|
|||
1971 | if len(op.repo.changelog) != 0: |
|
1968 | if len(op.repo.changelog) != 0: | |
1972 | raise error.Abort( |
|
1969 | raise error.Abort( | |
1973 | _( |
|
1970 | _( | |
@@ -2577,7 +2574,7 def widen_bundle( | |||||
2577 |
|
2574 | |||
2578 | part = bundler.newpart(b'changegroup', data=cgdata) |
|
2575 | part = bundler.newpart(b'changegroup', data=cgdata) | |
2579 | part.addparam(b'version', cgversion) |
|
2576 | part.addparam(b'version', cgversion) | |
2580 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
2577 | if scmutil.istreemanifest(repo): | |
2581 | part.addparam(b'treemanifest', b'1') |
|
2578 | part.addparam(b'treemanifest', b'1') | |
2582 | if b'exp-sidedata-flag' in repo.requirements: |
|
2579 | if b'exp-sidedata-flag' in repo.requirements: | |
2583 | part.addparam(b'exp-sidedata', b'1') |
|
2580 | part.addparam(b'exp-sidedata', b'1') |
@@ -27,6 +27,7 from . import ( | |||||
27 | phases, |
|
27 | phases, | |
28 | pycompat, |
|
28 | pycompat, | |
29 | requirements, |
|
29 | requirements, | |
|
30 | scmutil, | |||
30 | util, |
|
31 | util, | |
31 | ) |
|
32 | ) | |
32 |
|
33 | |||
@@ -949,9 +950,7 class cgpacker(object): | |||||
949 | # Treemanifests don't work correctly with fastpathlinkrev |
|
950 | # Treemanifests don't work correctly with fastpathlinkrev | |
950 | # either, because we don't discover which directory nodes to |
|
951 | # either, because we don't discover which directory nodes to | |
951 | # send along with files. This could probably be fixed. |
|
952 | # send along with files. This could probably be fixed. | |
952 | fastpathlinkrev = fastpathlinkrev and ( |
|
953 | fastpathlinkrev = fastpathlinkrev and not scmutil.istreemanifest(repo) | |
953 | requirements.TREEMANIFEST_REQUIREMENT not in repo.requirements |
|
|||
954 | ) |
|
|||
955 |
|
954 | |||
956 | fnodes = {} # needed file nodes |
|
955 | fnodes = {} # needed file nodes | |
957 |
|
956 | |||
@@ -1468,7 +1467,7 def allsupportedversions(repo): | |||||
1468 | if ( |
|
1467 | if ( | |
1469 | repo.ui.configbool(b'experimental', b'changegroup3') |
|
1468 | repo.ui.configbool(b'experimental', b'changegroup3') | |
1470 | or repo.ui.configbool(b'experimental', b'treemanifest') |
|
1469 | or repo.ui.configbool(b'experimental', b'treemanifest') | |
1471 | or requirements.TREEMANIFEST_REQUIREMENT in repo.requirements |
|
1470 | or scmutil.istreemanifest(repo) | |
1472 | ): |
|
1471 | ): | |
1473 | # we keep version 03 because we need to to exchange treemanifest data |
|
1472 | # we keep version 03 because we need to to exchange treemanifest data | |
1474 | # |
|
1473 | # | |
@@ -1496,7 +1495,7 def supportedincomingversions(repo): | |||||
1496 | # Changegroup versions that can be created from the repo |
|
1495 | # Changegroup versions that can be created from the repo | |
1497 | def supportedoutgoingversions(repo): |
|
1496 | def supportedoutgoingversions(repo): | |
1498 | versions = allsupportedversions(repo) |
|
1497 | versions = allsupportedversions(repo) | |
1499 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
1498 | if scmutil.istreemanifest(repo): | |
1500 | # Versions 01 and 02 support only flat manifests and it's just too |
|
1499 | # Versions 01 and 02 support only flat manifests and it's just too | |
1501 | # expensive to convert between the flat manifest and tree manifest on |
|
1500 | # expensive to convert between the flat manifest and tree manifest on | |
1502 | # the fly. Since tree manifests are hashed differently, all of history |
|
1501 | # the fly. Since tree manifests are hashed differently, all of history |
@@ -46,7 +46,6 from . import ( | |||||
46 | phases, |
|
46 | phases, | |
47 | pycompat, |
|
47 | pycompat, | |
48 | repair, |
|
48 | repair, | |
49 | requirements, |
|
|||
50 | revlog, |
|
49 | revlog, | |
51 | rewriteutil, |
|
50 | rewriteutil, | |
52 | scmutil, |
|
51 | scmutil, | |
@@ -1359,7 +1358,7 def openstorage(repo, cmd, file_, opts, | |||||
1359 | if cl: |
|
1358 | if cl: | |
1360 | r = repo.unfiltered().changelog |
|
1359 | r = repo.unfiltered().changelog | |
1361 | elif dir: |
|
1360 | elif dir: | |
1362 | if requirements.TREEMANIFEST_REQUIREMENT not in repo.requirements: |
|
1361 | if not scmutil.istreemanifest(repo): | |
1363 | raise error.Abort( |
|
1362 | raise error.Abort( | |
1364 | _( |
|
1363 | _( | |
1365 | b"--dir can only be used on repos with " |
|
1364 | b"--dir can only be used on repos with " |
@@ -1068,7 +1068,7 def _pushb2ctx(pushop, bundler): | |||||
1068 | cgpart = bundler.newpart(b'changegroup', data=cgstream) |
|
1068 | cgpart = bundler.newpart(b'changegroup', data=cgstream) | |
1069 | if cgversions: |
|
1069 | if cgversions: | |
1070 | cgpart.addparam(b'version', version) |
|
1070 | cgpart.addparam(b'version', version) | |
1071 | if requirements.TREEMANIFEST_REQUIREMENT in pushop.repo.requirements: |
|
1071 | if scmutil.istreemanifest(pushop.repo): | |
1072 | cgpart.addparam(b'treemanifest', b'1') |
|
1072 | cgpart.addparam(b'treemanifest', b'1') | |
1073 | if b'exp-sidedata-flag' in pushop.repo.requirements: |
|
1073 | if b'exp-sidedata-flag' in pushop.repo.requirements: | |
1074 | cgpart.addparam(b'exp-sidedata', b'1') |
|
1074 | cgpart.addparam(b'exp-sidedata', b'1') | |
@@ -2557,7 +2557,7 def _getbundlechangegrouppart( | |||||
2557 |
|
2557 | |||
2558 | part.addparam(b'nbchanges', b'%d' % len(outgoing.missing), mandatory=False) |
|
2558 | part.addparam(b'nbchanges', b'%d' % len(outgoing.missing), mandatory=False) | |
2559 |
|
2559 | |||
2560 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
2560 | if scmutil.istreemanifest(repo): | |
2561 | part.addparam(b'treemanifest', b'1') |
|
2561 | part.addparam(b'treemanifest', b'1') | |
2562 |
|
2562 | |||
2563 | if b'exp-sidedata-flag' in repo.requirements: |
|
2563 | if b'exp-sidedata-flag' in repo.requirements: |
@@ -27,6 +27,7 from . import ( | |||||
27 | phases, |
|
27 | phases, | |
28 | pycompat, |
|
28 | pycompat, | |
29 | requirements, |
|
29 | requirements, | |
|
30 | scmutil, | |||
30 | util, |
|
31 | util, | |
31 | ) |
|
32 | ) | |
32 | from .utils import ( |
|
33 | from .utils import ( | |
@@ -419,7 +420,7 def stripmanifest(repo, striprev, tr, fi | |||||
419 |
|
420 | |||
420 | def manifestrevlogs(repo): |
|
421 | def manifestrevlogs(repo): | |
421 | yield repo.manifestlog.getstorage(b'') |
|
422 | yield repo.manifestlog.getstorage(b'') | |
422 | if requirements.TREEMANIFEST_REQUIREMENT in repo.requirements: |
|
423 | if scmutil.istreemanifest(repo): | |
423 | # This logic is safe if treemanifest isn't enabled, but also |
|
424 | # This logic is safe if treemanifest isn't enabled, but also | |
424 | # pointless, so we skip it if treemanifest isn't enabled. |
|
425 | # pointless, so we skip it if treemanifest isn't enabled. | |
425 | for unencoded, encoded, size in repo.store.datafiles(): |
|
426 | for unencoded, encoded, size in repo.store.datafiles(): |
@@ -1492,6 +1492,11 def filterrequirements(requirements): | |||||
1492 | return requirements, None |
|
1492 | return requirements, None | |
1493 |
|
1493 | |||
1494 |
|
1494 | |||
|
1495 | def istreemanifest(repo): | |||
|
1496 | """ returns whether the repository is using treemanifest or not """ | |||
|
1497 | return requirementsmod.TREEMANIFEST_REQUIREMENT in repo.requirements | |||
|
1498 | ||||
|
1499 | ||||
1495 | def writereporequirements(repo, requirements=None): |
|
1500 | def writereporequirements(repo, requirements=None): | |
1496 | """ writes requirements for the repo to .hg/requires """ |
|
1501 | """ writes requirements for the repo to .hg/requires """ | |
1497 | if requirements: |
|
1502 | if requirements: |
General Comments 0
You need to be logged in to leave comments.
Login now