comparison tests/simplestorerepo.py @ 37346:45a4799174a1

tests: disallow using simple store repo with bundlerepo bundlerepo is... going to be difficult to port to an alternate store because it assumes revlogs for storage and essentially overlays the contents of a bundle onto a fake revlog-like primitive. It will be a good test case for our eventual new storage interface. Refactoring bundlerepo to make it work with non-revlog storage is going to be a bit of work. So for now, let's refuse to use the simple store repo when a bundlerepo is in play. A new test requirement advertising support for treating bundle files as repo instances has been added. Some tests have been made conditional on this feature. Additional tests will be annotated in subsequent commits. Having positive opt-in to repo features will be simpler in the long run because it will allow multiple storage backends to declare feature support and we won't have to annotate each test with the set of repo backends that are supported. Again, we'll probably want better integration between repo features and tests. But this is the easiest we can do at the moment. Differential Revision: https://phab.mercurial-scm.org/D3060
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 04 Apr 2018 11:44:38 -0700
parents d62d2e346acf
children dd2753729853
comparison
equal deleted inserted replaced
37345:b09a25d74592 37346:45a4799174a1
22 from mercurial.thirdparty import ( 22 from mercurial.thirdparty import (
23 cbor, 23 cbor,
24 ) 24 )
25 from mercurial import ( 25 from mercurial import (
26 ancestor, 26 ancestor,
27 bundlerepo,
27 error, 28 error,
28 filelog, 29 filelog,
29 mdiff, 30 mdiff,
30 pycompat, 31 pycompat,
31 revlog, 32 revlog,
585 586
586 def reposetup(ui, repo): 587 def reposetup(ui, repo):
587 if not repo.local(): 588 if not repo.local():
588 return 589 return
589 590
591 if isinstance(repo, bundlerepo.bundlerepository):
592 raise error.Abort(_('cannot use simple store with bundlerepo'))
593
590 class simplestorerepo(repo.__class__): 594 class simplestorerepo(repo.__class__):
591 def file(self, f): 595 def file(self, f):
592 return filestorage(self.svfs, f) 596 return filestorage(self.svfs, f)
593 597
594 repo.__class__ = simplestorerepo 598 repo.__class__ = simplestorerepo