~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/knitrepo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-10-01 07:56:03 UTC
  • mfrom: (3224.5.40 faster-startup)
  • Revision ID: pqm@pqm.ubuntu.com-20081001075603-s9nynw8y85fmrprj
Reduce startup time by a small amount. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
from bzrlib.lazy_import import lazy_import
18
18
lazy_import(globals(), """
19
19
from bzrlib import (
20
 
    debug,
21
 
    )
22
 
from bzrlib.store import revision
23
 
from bzrlib.store.revision.knit import KnitRevisionStore
24
 
""")
25
 
from bzrlib import (
26
20
    bzrdir,
27
21
    errors,
28
 
    knit,
 
22
    knit as _mod_knit,
29
23
    lockable_files,
30
24
    lockdir,
31
25
    osutils,
32
 
    symbol_versioning,
 
26
    revision as _mod_revision,
33
27
    transactions,
 
28
    versionedfile,
34
29
    xml5,
35
30
    xml6,
36
31
    xml7,
37
32
    )
 
33
""")
 
34
from bzrlib import (
 
35
    symbol_versioning,
 
36
    )
38
37
from bzrlib.decorators import needs_read_lock, needs_write_lock
39
 
from bzrlib.knit import KnitVersionedFiles, _KndxIndex, _KnitKeyAccess
40
38
from bzrlib.repository import (
41
39
    CommitBuilder,
42
40
    MetaDirRepository,
44
42
    RepositoryFormat,
45
43
    RootCommitBuilder,
46
44
    )
47
 
import bzrlib.revision as _mod_revision
48
 
from bzrlib.store.versioned import VersionedFileStore
49
45
from bzrlib.trace import mutter, mutter_callsite
50
 
from bzrlib.util import bencode
51
 
from bzrlib.versionedfile import ConstantMapper, HashEscapedPrefixMapper
52
46
 
53
47
 
54
48
class _KnitParentsProvider(object):
287
281
    _commit_builder_class = None
288
282
    # Set this attribute in derived clases to control the _serializer that the
289
283
    # repository objects will have passed to their constructor.
290
 
    _serializer = xml5.serializer_v5
 
284
    @property
 
285
    def _serializer(self):
 
286
        return xml5.serializer_v5
291
287
    # Knit based repositories handle ghosts reasonably well.
292
288
    supports_ghosts = True
293
289
    # External lookups are not supported in this format.
294
290
    supports_external_lookups = False
295
291
 
296
292
    def _get_inventories(self, repo_transport, repo, name='inventory'):
297
 
        mapper = ConstantMapper(name)
298
 
        index = _KndxIndex(repo_transport, mapper, repo.get_transaction,
299
 
            repo.is_write_locked, repo.is_locked)
300
 
        access = _KnitKeyAccess(repo_transport, mapper)
301
 
        return KnitVersionedFiles(index, access, annotated=False)
 
293
        mapper = versionedfile.ConstantMapper(name)
 
294
        index = _mod_knit._KndxIndex(repo_transport, mapper,
 
295
            repo.get_transaction, repo.is_write_locked, repo.is_locked)
 
296
        access = _mod_knit._KnitKeyAccess(repo_transport, mapper)
 
297
        return _mod_knit.KnitVersionedFiles(index, access, annotated=False)
302
298
 
303
299
    def _get_revisions(self, repo_transport, repo):
304
 
        mapper = ConstantMapper('revisions')
305
 
        index = _KndxIndex(repo_transport, mapper, repo.get_transaction,
306
 
            repo.is_write_locked, repo.is_locked)
307
 
        access = _KnitKeyAccess(repo_transport, mapper)
308
 
        return KnitVersionedFiles(index, access, max_delta_chain=0,
 
300
        mapper = versionedfile.ConstantMapper('revisions')
 
301
        index = _mod_knit._KndxIndex(repo_transport, mapper,
 
302
            repo.get_transaction, repo.is_write_locked, repo.is_locked)
 
303
        access = _mod_knit._KnitKeyAccess(repo_transport, mapper)
 
304
        return _mod_knit.KnitVersionedFiles(index, access, max_delta_chain=0,
309
305
            annotated=False)
310
306
 
311
307
    def _get_signatures(self, repo_transport, repo):
312
 
        mapper = ConstantMapper('signatures')
313
 
        index = _KndxIndex(repo_transport, mapper, repo.get_transaction,
314
 
            repo.is_write_locked, repo.is_locked)
315
 
        access = _KnitKeyAccess(repo_transport, mapper)
316
 
        return KnitVersionedFiles(index, access, max_delta_chain=0,
 
308
        mapper = versionedfile.ConstantMapper('signatures')
 
309
        index = _mod_knit._KndxIndex(repo_transport, mapper,
 
310
            repo.get_transaction, repo.is_write_locked, repo.is_locked)
 
311
        access = _mod_knit._KnitKeyAccess(repo_transport, mapper)
 
312
        return _mod_knit.KnitVersionedFiles(index, access, max_delta_chain=0,
317
313
            annotated=False)
318
314
 
319
315
    def _get_texts(self, repo_transport, repo):
320
 
        mapper = HashEscapedPrefixMapper()
 
316
        mapper = versionedfile.HashEscapedPrefixMapper()
321
317
        base_transport = repo_transport.clone('knits')
322
 
        index = _KndxIndex(base_transport, mapper, repo.get_transaction,
323
 
            repo.is_write_locked, repo.is_locked)
324
 
        access = _KnitKeyAccess(base_transport, mapper)
325
 
        return KnitVersionedFiles(index, access, max_delta_chain=200,
 
318
        index = _mod_knit._KndxIndex(base_transport, mapper,
 
319
            repo.get_transaction, repo.is_write_locked, repo.is_locked)
 
320
        access = _mod_knit._KnitKeyAccess(base_transport, mapper)
 
321
        return _mod_knit.KnitVersionedFiles(index, access, max_delta_chain=200,
326
322
            annotated=True)
327
323
 
328
324
    def initialize(self, a_bzrdir, shared=False):
399
395
 
400
396
    repository_class = KnitRepository
401
397
    _commit_builder_class = CommitBuilder
402
 
    _serializer = xml5.serializer_v5
 
398
    @property
 
399
    def _serializer(self):
 
400
        return xml5.serializer_v5
403
401
 
404
402
    def __ne__(self, other):
405
403
        return self.__class__ is not other.__class__
436
434
    _commit_builder_class = RootCommitBuilder
437
435
    rich_root_data = True
438
436
    supports_tree_reference = True
439
 
    _serializer = xml7.serializer_v7
 
437
    @property
 
438
    def _serializer(self):
 
439
        return xml7.serializer_v7
440
440
 
441
441
    def _get_matching_bzrdir(self):
442
442
        return bzrdir.format_registry.make_bzrdir('dirstate-with-subtree')
483
483
    _commit_builder_class = RootCommitBuilder
484
484
    rich_root_data = True
485
485
    supports_tree_reference = False
486
 
    _serializer = xml6.serializer_v6
 
486
    @property
 
487
    def _serializer(self):
 
488
        return xml6.serializer_v6
487
489
 
488
490
    def _get_matching_bzrdir(self):
489
491
        return bzrdir.format_registry.make_bzrdir('rich-root')