##// END OF EJS Templates
scmutil: add writereporequirements() and route requires writing through it...
Pulkit Goyal -
r45666:a03c177a default
parent child Browse files
Show More
@@ -163,7 +163,7 b' def lfconvert(ui, src, dest, *pats, **op'
163 # to the destination repository's requirements.
163 # to the destination repository's requirements.
164 if lfiles:
164 if lfiles:
165 rdst.requirements.add(b'largefiles')
165 rdst.requirements.add(b'largefiles')
166 rdst._writerequirements()
166 scmutil.writereporequirements(rdst)
167 else:
167 else:
168
168
169 class lfsource(filemap.filemap_source):
169 class lfsource(filemap.filemap_source):
@@ -448,7 +448,7 b' def reposetup(ui, repo):'
448 lfutil.shortname + b'/' in f[0] for f in repo.store.datafiles()
448 lfutil.shortname + b'/' in f[0] for f in repo.store.datafiles()
449 ):
449 ):
450 repo.requirements.add(b'largefiles')
450 repo.requirements.add(b'largefiles')
451 repo._writerequirements()
451 scmutil.writereporequirements(repo)
452
452
453 ui.setconfig(
453 ui.setconfig(
454 b'hooks', b'changegroup.lfiles', checkrequireslfiles, b'largefiles'
454 b'hooks', b'changegroup.lfiles', checkrequireslfiles, b'largefiles'
@@ -255,7 +255,7 b' def _reposetup(ui, repo):'
255 ):
255 ):
256 repo.requirements.add(b'lfs')
256 repo.requirements.add(b'lfs')
257 repo.features.add(repository.REPO_FEATURE_LFS)
257 repo.features.add(repository.REPO_FEATURE_LFS)
258 repo._writerequirements()
258 scmutil.writereporequirements(repo)
259 repo.prepushoutgoinghooks.add(b'lfs', wrapper.prepush)
259 repo.prepushoutgoinghooks.add(b'lfs', wrapper.prepush)
260 break
260 break
261
261
@@ -312,7 +312,7 b' def convertsink(orig, sink):'
312 # membership before assuming it is in the context.
312 # membership before assuming it is in the context.
313 if any(f in ctx and ctx[f].islfs() for f, n in files):
313 if any(f in ctx and ctx[f].islfs() for f, n in files):
314 self.repo.requirements.add(b'lfs')
314 self.repo.requirements.add(b'lfs')
315 self.repo._writerequirements()
315 scmutil.writereporequirements(self.repo)
316
316
317 return node
317 return node
318
318
@@ -20,6 +20,7 b' from mercurial import ('
20 localrepo,
20 localrepo,
21 narrowspec,
21 narrowspec,
22 repair,
22 repair,
23 scmutil,
23 util,
24 util,
24 wireprototypes,
25 wireprototypes,
25 )
26 )
@@ -179,7 +180,7 b' def _handlechangespec_2(op, inpart):'
179
180
180 if not repository.NARROW_REQUIREMENT in op.repo.requirements:
181 if not repository.NARROW_REQUIREMENT in op.repo.requirements:
181 op.repo.requirements.add(repository.NARROW_REQUIREMENT)
182 op.repo.requirements.add(repository.NARROW_REQUIREMENT)
182 op.repo._writerequirements()
183 scmutil.writereporequirements(op.repo)
183 op.repo.setnarrowpats(includepats, excludepats)
184 op.repo.setnarrowpats(includepats, excludepats)
184 narrowspec.copytoworkingcopy(op.repo)
185 narrowspec.copytoworkingcopy(op.repo)
185
186
@@ -195,7 +196,7 b' def _handlenarrowspecs(op, inpart):'
195
196
196 if repository.NARROW_REQUIREMENT not in op.repo.requirements:
197 if repository.NARROW_REQUIREMENT not in op.repo.requirements:
197 op.repo.requirements.add(repository.NARROW_REQUIREMENT)
198 op.repo.requirements.add(repository.NARROW_REQUIREMENT)
198 op.repo._writerequirements()
199 scmutil.writereporequirements(op.repo)
199 op.repo.setnarrowpats(includepats, excludepats)
200 op.repo.setnarrowpats(includepats, excludepats)
200 narrowspec.copytoworkingcopy(op.repo)
201 narrowspec.copytoworkingcopy(op.repo)
201
202
@@ -361,7 +361,7 b' def cloneshallow(orig, ui, repo, *args, '
361 self.unfiltered().__class__,
361 self.unfiltered().__class__,
362 )
362 )
363 self.requirements.add(constants.SHALLOWREPO_REQUIREMENT)
363 self.requirements.add(constants.SHALLOWREPO_REQUIREMENT)
364 self._writerequirements()
364 scmutil.writereporequirements(self)
365
365
366 # Since setupclient hadn't been called, exchange.pull was not
366 # Since setupclient hadn't been called, exchange.pull was not
367 # wrapped. So we need to manually invoke our version of it.
367 # wrapped. So we need to manually invoke our version of it.
@@ -166,6 +166,7 b' from . import ('
166 phases,
166 phases,
167 pushkey,
167 pushkey,
168 pycompat,
168 pycompat,
169 scmutil,
169 streamclone,
170 streamclone,
170 tags,
171 tags,
171 url,
172 url,
@@ -1977,7 +1978,7 b' def handlechangegroup(op, inpart):'
1977 op.repo.svfs.options = localrepo.resolvestorevfsoptions(
1978 op.repo.svfs.options = localrepo.resolvestorevfsoptions(
1978 op.repo.ui, op.repo.requirements, op.repo.features
1979 op.repo.ui, op.repo.requirements, op.repo.features
1979 )
1980 )
1980 op.repo._writerequirements()
1981 scmutil.writereporequirements(op.repo)
1981
1982
1982 bundlesidedata = bool(b'exp-sidedata' in inpart.params)
1983 bundlesidedata = bool(b'exp-sidedata' in inpart.params)
1983 reposidedata = bool(b'exp-sidedata-flag' in op.repo.requirements)
1984 reposidedata = bool(b'exp-sidedata-flag' in op.repo.requirements)
@@ -356,7 +356,7 b' def unshare(ui, repo):'
356
356
357 repo.requirements.discard(b'shared')
357 repo.requirements.discard(b'shared')
358 repo.requirements.discard(b'relshared')
358 repo.requirements.discard(b'relshared')
359 repo._writerequirements()
359 scmutil.writereporequirements(repo)
360
360
361 # Removing share changes some fundamental properties of the repo instance.
361 # Removing share changes some fundamental properties of the repo instance.
362 # So we instantiate a new repo object and operate on it rather than
362 # So we instantiate a new repo object and operate on it rather than
@@ -1298,9 +1298,6 b' class localrepository(object):'
1298 caps.add(b'bundle2=' + urlreq.quote(capsblob))
1298 caps.add(b'bundle2=' + urlreq.quote(capsblob))
1299 return caps
1299 return caps
1300
1300
1301 def _writerequirements(self):
1302 scmutil.writerequires(self.vfs, self.requirements)
1303
1304 # Don't cache auditor/nofsauditor, or you'll end up with reference cycle:
1301 # Don't cache auditor/nofsauditor, or you'll end up with reference cycle:
1305 # self -> auditor -> self._checknested -> self
1302 # self -> auditor -> self._checknested -> self
1306
1303
@@ -1470,6 +1470,13 b' def movedirstate(repo, newctx, match=Non'
1470 repo._quick_access_changeid_invalidate()
1470 repo._quick_access_changeid_invalidate()
1471
1471
1472
1472
1473 def writereporequirements(repo, requirements=None):
1474 """ writes requirements for the repo to .hg/requires """
1475 if requirements:
1476 repo.requirements = requirements
1477 writerequires(repo.vfs, repo.requirements)
1478
1479
1473 def writerequires(opener, requirements):
1480 def writerequires(opener, requirements):
1474 with opener(b'requires', b'w', atomictemp=True) as fp:
1481 with opener(b'requires', b'w', atomictemp=True) as fp:
1475 for r in sorted(requirements):
1482 for r in sorted(requirements):
@@ -601,10 +601,10 b' def _updateconfigandrefreshwdir('
601
601
602 if b'exp-sparse' in oldrequires and removing:
602 if b'exp-sparse' in oldrequires and removing:
603 repo.requirements.discard(b'exp-sparse')
603 repo.requirements.discard(b'exp-sparse')
604 scmutil.writerequires(repo.vfs, repo.requirements)
604 scmutil.writereporequirements(repo)
605 elif b'exp-sparse' not in oldrequires:
605 elif b'exp-sparse' not in oldrequires:
606 repo.requirements.add(b'exp-sparse')
606 repo.requirements.add(b'exp-sparse')
607 scmutil.writerequires(repo.vfs, repo.requirements)
607 scmutil.writereporequirements(repo)
608
608
609 try:
609 try:
610 writeconfig(repo, includes, excludes, profiles)
610 writeconfig(repo, includes, excludes, profiles)
@@ -613,7 +613,7 b' def _updateconfigandrefreshwdir('
613 if repo.requirements != oldrequires:
613 if repo.requirements != oldrequires:
614 repo.requirements.clear()
614 repo.requirements.clear()
615 repo.requirements |= oldrequires
615 repo.requirements |= oldrequires
616 scmutil.writerequires(repo.vfs, repo.requirements)
616 scmutil.writereporequirements(repo)
617 writeconfig(repo, oldincludes, oldexcludes, oldprofiles)
617 writeconfig(repo, oldincludes, oldexcludes, oldprofiles)
618 raise
618 raise
619
619
@@ -20,6 +20,7 b' from . import ('
20 narrowspec,
20 narrowspec,
21 phases,
21 phases,
22 pycompat,
22 pycompat,
23 scmutil,
23 store,
24 store,
24 util,
25 util,
25 )
26 )
@@ -187,7 +188,7 b' def maybeperformlegacystreamclone(pullop'
187 repo.svfs.options = localrepo.resolvestorevfsoptions(
188 repo.svfs.options = localrepo.resolvestorevfsoptions(
188 repo.ui, repo.requirements, repo.features
189 repo.ui, repo.requirements, repo.features
189 )
190 )
190 repo._writerequirements()
191 scmutil.writereporequirements(repo)
191
192
192 if rbranchmap:
193 if rbranchmap:
193 repo._branchcaches.replace(repo, rbranchmap)
194 repo._branchcaches.replace(repo, rbranchmap)
@@ -730,4 +731,4 b' def applybundlev2(repo, fp, filecount, f'
730 repo.svfs.options = localrepo.resolvestorevfsoptions(
731 repo.svfs.options = localrepo.resolvestorevfsoptions(
731 repo.ui, repo.requirements, repo.features
732 repo.ui, repo.requirements, repo.features
732 )
733 )
733 repo._writerequirements()
734 scmutil.writereporequirements(repo)
@@ -1091,8 +1091,8 b' def _upgraderepo('
1091 b'unable to read from repository\n'
1091 b'unable to read from repository\n'
1092 )
1092 )
1093 )
1093 )
1094 scmutil.writerequires(
1094 scmutil.writereporequirements(
1095 srcrepo.vfs, srcrepo.requirements | {b'upgradeinprogress'}
1095 srcrepo, srcrepo.requirements | {b'upgradeinprogress'}
1096 )
1096 )
1097
1097
1098 ui.status(_(b'starting in-place swap of repository data\n'))
1098 ui.status(_(b'starting in-place swap of repository data\n'))
@@ -1122,7 +1122,7 b' def _upgraderepo('
1122 b'again\n'
1122 b'again\n'
1123 )
1123 )
1124 )
1124 )
1125 scmutil.writerequires(srcrepo.vfs, requirements)
1125 scmutil.writereporequirements(srcrepo, requirements)
1126
1126
1127 # The lock file from the old store won't be removed because nothing has a
1127 # The lock file from the old store won't be removed because nothing has a
1128 # reference to its new location. So clean it up manually. Alternatively, we
1128 # reference to its new location. So clean it up manually. Alternatively, we
General Comments 0
You need to be logged in to leave comments. Login now