~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

  • Committer: John Arbash Meinel
  • Date: 2010-01-13 16:23:07 UTC
  • mto: (4634.119.7 2.0)
  • mto: This revision was merged to the branch mainline in revision 4959.
  • Revision ID: john@arbash-meinel.com-20100113162307-0bs82td16gzih827
Update the MANIFEST.in file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
from bzrlib import (
33
33
    annotate,
34
34
    errors,
 
35
    graph as _mod_graph,
35
36
    groupcompress,
36
37
    index,
37
38
    knit,
913
914
        raise NotImplementedError(self.annotate)
914
915
 
915
916
    def check(self, progress_bar=None):
916
 
        """Check this object for integrity."""
 
917
        """Check this object for integrity.
 
918
        
 
919
        :param progress_bar: A progress bar to output as the check progresses.
 
920
        :param keys: Specific keys within the VersionedFiles to check. When
 
921
            this parameter is not None, check() becomes a generator as per
 
922
            get_record_stream. The difference to get_record_stream is that
 
923
            more or deeper checks will be performed.
 
924
        :return: None, or if keys was supplied a generator as per
 
925
            get_record_stream.
 
926
        """
917
927
        raise NotImplementedError(self.check)
918
928
 
919
929
    @staticmethod
932
942
            if '\n' in line[:-1]:
933
943
                raise errors.BzrBadParameterContainsNewline("lines")
934
944
 
 
945
    def get_known_graph_ancestry(self, keys):
 
946
        """Get a KnownGraph instance with the ancestry of keys."""
 
947
        # most basic implementation is a loop around get_parent_map
 
948
        pending = set(keys)
 
949
        parent_map = {}
 
950
        while pending:
 
951
            this_parent_map = self.get_parent_map(pending)
 
952
            parent_map.update(this_parent_map)
 
953
            pending = set()
 
954
            map(pending.update, this_parent_map.itervalues())
 
955
            pending = pending.difference(parent_map)
 
956
        kg = _mod_graph.KnownGraph(parent_map)
 
957
        return kg
 
958
 
935
959
    def get_parent_map(self, keys):
936
960
        """Get a map of the parents of keys.
937
961
 
1132
1156
    def get_annotator(self):
1133
1157
        return annotate.Annotator(self)
1134
1158
 
1135
 
    def check(self, progress_bar=None):
 
1159
    def check(self, progress_bar=None, keys=None):
1136
1160
        """See VersionedFiles.check()."""
 
1161
        # XXX: This is over-enthusiastic but as we only thunk for Weaves today
 
1162
        # this is tolerable. Ideally we'd pass keys down to check() and 
 
1163
        # have the older VersiondFile interface updated too.
1137
1164
        for prefix, vf in self._iter_all_components():
1138
1165
            vf.check()
 
1166
        if keys is not None:
 
1167
            return self.get_record_stream(keys, 'unordered', True)
1139
1168
 
1140
1169
    def get_parent_map(self, keys):
1141
1170
        """Get a map of the parents of keys.
1557
1586
            record.get_bytes_as(record.storage_kind) call.
1558
1587
        """
1559
1588
        self._bytes_iterator = bytes_iterator
1560
 
        self._kind_factory = {'knit-ft-gz':knit.knit_network_to_record,
1561
 
            'knit-delta-gz':knit.knit_network_to_record,
1562
 
            'knit-annotated-ft-gz':knit.knit_network_to_record,
1563
 
            'knit-annotated-delta-gz':knit.knit_network_to_record,
1564
 
            'knit-delta-closure':knit.knit_delta_closure_to_records,
1565
 
            'fulltext':fulltext_network_to_record,
1566
 
            'groupcompress-block':groupcompress.network_block_to_records,
 
1589
        self._kind_factory = {
 
1590
            'fulltext': fulltext_network_to_record,
 
1591
            'groupcompress-block': groupcompress.network_block_to_records,
 
1592
            'knit-ft-gz': knit.knit_network_to_record,
 
1593
            'knit-delta-gz': knit.knit_network_to_record,
 
1594
            'knit-annotated-ft-gz': knit.knit_network_to_record,
 
1595
            'knit-annotated-delta-gz': knit.knit_network_to_record,
 
1596
            'knit-delta-closure': knit.knit_delta_closure_to_records,
1567
1597
            }
1568
1598
 
1569
1599
    def read(self):