~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/pack_repo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-05-09 15:39:14 UTC
  • mfrom: (5815.4.22 separate-vf)
  • Revision ID: pqm@pqm.ubuntu.com-20110509153914-wbwvbi34ohzwpv9k
(jelmer) Split VersionedFiles-specific bits out of bzrlib.repository into
 bzrlib.vf_repository. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
    )
53
53
from bzrlib.lock import LogicalLockResult
54
54
from bzrlib.repository import (
55
 
    CommitBuilder,
56
55
    _LazyListJoin,
57
56
    MetaDirRepository,
58
 
    MetaDirRepositoryFormat,
59
57
    RepositoryFormat,
60
58
    RepositoryWriteLockResult,
61
 
    RootCommitBuilder,
 
59
    )
 
60
from bzrlib.vf_repository import (
 
61
    MetaDirVersionedFileRepository,
 
62
    MetaDirVersionedFileRepositoryFormat,
 
63
    VersionedFileCommitBuilder,
 
64
    VersionedFileRootCommitBuilder,
62
65
    )
63
66
from bzrlib.trace import (
64
67
    mutter,
67
70
    )
68
71
 
69
72
 
70
 
class PackCommitBuilder(CommitBuilder):
71
 
    """A subclass of CommitBuilder to add texts with pack semantics.
 
73
class PackCommitBuilder(VersionedFileCommitBuilder):
 
74
    """Subclass of VersionedFileCommitBuilder to add texts with pack semantics.
72
75
 
73
76
    Specifically this uses one knit object rather than one knit object per
74
77
    added text, reducing memory and object pressure.
77
80
    def __init__(self, repository, parents, config, timestamp=None,
78
81
                 timezone=None, committer=None, revprops=None,
79
82
                 revision_id=None, lossy=False):
80
 
        CommitBuilder.__init__(self, repository, parents, config,
 
83
        VersionedFileCommitBuilder.__init__(self, repository, parents, config,
81
84
            timestamp=timestamp, timezone=timezone, committer=committer,
82
85
            revprops=revprops, revision_id=revision_id, lossy=lossy)
83
86
        self._file_graph = graph.Graph(
88
91
        return set([key[1] for key in self._file_graph.heads(keys)])
89
92
 
90
93
 
91
 
class PackRootCommitBuilder(RootCommitBuilder):
 
94
class PackRootCommitBuilder(VersionedFileRootCommitBuilder):
92
95
    """A subclass of RootCommitBuilder to add texts with pack semantics.
93
96
 
94
97
    Specifically this uses one knit object rather than one knit object per
98
101
    def __init__(self, repository, parents, config, timestamp=None,
99
102
                 timezone=None, committer=None, revprops=None,
100
103
                 revision_id=None, lossy=False):
101
 
        CommitBuilder.__init__(self, repository, parents, config,
102
 
            timestamp=timestamp, timezone=timezone, committer=committer,
103
 
            revprops=revprops, revision_id=revision_id, lossy=lossy)
 
104
        super(PackRootCommitBuilder, self).__init__(repository, parents,
 
105
            config, timestamp=timestamp, timezone=timezone,
 
106
            committer=committer, revprops=revprops, revision_id=revision_id,
 
107
            lossy=lossy)
104
108
        self._file_graph = graph.Graph(
105
109
            repository._pack_collection.text_index.combined_index)
106
110
 
1623
1627
            self._resume_pack(token)
1624
1628
 
1625
1629
 
1626
 
class PackRepository(MetaDirRepository):
 
1630
class PackRepository(MetaDirVersionedFileRepository):
1627
1631
    """Repository with knit objects stored inside pack containers.
1628
1632
 
1629
1633
    The layering for a KnitPackRepository is:
1826
1830
                repo.unlock()
1827
1831
 
1828
1832
 
1829
 
class RepositoryFormatPack(MetaDirRepositoryFormat):
 
1833
class RepositoryFormatPack(MetaDirVersionedFileRepositoryFormat):
1830
1834
    """Format logic for pack structured repositories.
1831
1835
 
1832
1836
    This repository format has:
1862
1866
    index_class = None
1863
1867
    _fetch_uses_deltas = True
1864
1868
    fast_deltas = False
1865
 
    supports_full_versioned_files = True
1866
1869
    supports_funky_characters = True
1867
1870
    revision_graph_can_have_wrong_parents = True
1868
1871