##// END OF EJS Templates
scmutil: introduce function to check whether repo uses treemanifest or not...
Pulkit Goyal -
r46126:dfe58565 default draft
parent child Browse files
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