/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/knit.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-03-28 06:42:20 UTC
  • mfrom: (3287.6.9 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20080328064220-ongijg78bfqhvbay
Deprecate a number of VersionedFile method calls,
        and Repository.get_revision_graph. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
    RevisionNotPresent,
102
102
    RevisionAlreadyPresent,
103
103
    )
104
 
from bzrlib.tuned_gzip import GzipFile, bytes_to_gzip
 
104
from bzrlib.graph import Graph
105
105
from bzrlib.osutils import (
106
106
    contains_whitespace,
107
107
    contains_linebreaks,
108
108
    sha_string,
109
109
    sha_strings,
110
110
    )
111
 
from bzrlib.symbol_versioning import DEPRECATED_PARAMETER, deprecated_passed
 
111
from bzrlib.symbol_versioning import (
 
112
    DEPRECATED_PARAMETER,
 
113
    deprecated_method,
 
114
    deprecated_passed,
 
115
    one_four,
 
116
    )
112
117
from bzrlib.tsort import topo_sort
 
118
from bzrlib.tuned_gzip import GzipFile, bytes_to_gzip
113
119
import bzrlib.ui
 
120
from bzrlib.versionedfile import VersionedFile, InterVersionedFile
114
121
import bzrlib.weave
115
 
from bzrlib.versionedfile import VersionedFile, InterVersionedFile
116
122
 
117
123
 
118
124
# TODO: Split out code specific to this format into an associated object.
751
757
            annotated_part = "plain"
752
758
        return "knit-%s" % (annotated_part,)
753
759
        
 
760
    @deprecated_method(one_four)
754
761
    def get_graph_with_ghosts(self):
755
762
        """See VersionedFile.get_graph_with_ghosts()."""
756
 
        graph_items = self._index.get_graph()
757
 
        return dict(graph_items)
 
763
        return self.get_parent_map(self.versions())
758
764
 
759
765
    def get_sha1(self, version_id):
760
766
        return self.get_sha1s([version_id])[0]
770
776
        """See VersionedFile.get_suffixes()."""
771
777
        return [DATA_SUFFIX, INDEX_SUFFIX]
772
778
 
 
779
    @deprecated_method(one_four)
773
780
    def has_ghost(self, version_id):
774
781
        """True if there is a ghost reference in the file to version_id."""
775
782
        # maybe we have it
776
783
        if self.has_version(version_id):
777
784
            return False
778
785
        # optimisable if needed by memoising the _ghosts set.
779
 
        items = self._index.get_graph()
780
 
        for node, parents in items:
 
786
        items = self.get_parent_map(self.versions())
 
787
        for parents in items.itervalues():
781
788
            for parent in parents:
782
 
                if parent not in self._index._cache:
783
 
                    if parent == version_id:
784
 
                        return True
 
789
                if parent == version_id and parent not in items:
 
790
                    return True
785
791
        return False
786
792
 
787
793
    def insert_data_stream(self, (format, data_list, reader_callable)):
1427
1433
                self._transport.put_bytes_non_atomic(
1428
1434
                    self._filename, self.HEADER, mode=self._file_mode)
1429
1435
 
1430
 
    def get_graph(self):
1431
 
        """Return a list of the node:parents lists from this knit index."""
1432
 
        return [(vid, idx[4]) for vid, idx in self._cache.iteritems()]
1433
 
 
1434
1436
    def get_ancestry(self, versions, topo_sorted=True):
1435
1437
        """See VersionedFile.get_ancestry."""
1436
1438
        # get a graph of all the mentioned versions:
1848
1850
        else:
1849
1851
            return 'fulltext'
1850
1852
 
1851
 
    def get_graph(self):
1852
 
        """Return a list of the node:parents lists from this knit index."""
1853
 
        if not self._parents:
1854
 
            return [(key, ()) for key in self.get_versions()]
1855
 
        result = []
1856
 
        for index, key, value, refs in self._graph_index.iter_all_entries():
1857
 
            result.append((key[0], tuple([ref[0] for ref in refs[0]])))
1858
 
        return result
1859
 
 
1860
1853
    def iter_parents(self, version_ids):
1861
1854
        """Iterate through the parents for many version ids.
1862
1855
 
2673
2666
        see join() for the parameter definitions.
2674
2667
        """
2675
2668
        version_ids = self._get_source_version_ids(version_ids, ignore_missing)
2676
 
        graph = self.source.get_graph(version_ids)
2677
 
        order = topo_sort(graph.items())
 
2669
        # --- the below is factorable out with VersionedFile.join, but wait for
 
2670
        # VersionedFiles, it may all be simpler then.
 
2671
        graph = Graph(self.source)
 
2672
        search = graph._make_breadth_first_searcher(version_ids)
 
2673
        transitive_ids = set()
 
2674
        map(transitive_ids.update, list(search))
 
2675
        parent_map = self.source.get_parent_map(transitive_ids)
 
2676
        order = topo_sort(parent_map.items())
2678
2677
 
2679
2678
        def size_of_content(content):
2680
2679
            return sum(len(line) for line in content.text())
2741
2740
    
2742
2741
            if not needed_versions:
2743
2742
                return 0
2744
 
            full_list = topo_sort(self.source.get_graph())
 
2743
            full_list = topo_sort(
 
2744
                self.source.get_parent_map(self.source.versions()))
2745
2745
    
2746
2746
            version_list = [i for i in full_list if (not self.target.has_version(i)
2747
2747
                            and i in needed_versions)]
2843
2843
    
2844
2844
            if not needed_versions:
2845
2845
                return 0
2846
 
            full_list = topo_sort(self.source.get_graph())
 
2846
            full_list = topo_sort(
 
2847
                self.source.get_parent_map(self.source.versions()))
2847
2848
    
2848
2849
            version_list = [i for i in full_list if (not self.target.has_version(i)
2849
2850
                            and i in needed_versions)]