~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revisiontree.py

(jelmer) Reduce the number of connections made during "bzr branch
 --stacked". (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""RevisionTree - a Tree implementation backed by repository data for a revision."""
18
18
 
19
 
from __future__ import absolute_import
20
 
 
21
19
from cStringIO import StringIO
22
20
 
23
21
from bzrlib import (
67
65
        raise NotImplementedError(self.get_file_revision)
68
66
 
69
67
    def get_file_text(self, file_id, path=None):
70
 
        for (identifier, content) in self.iter_files_bytes([(file_id, None)]):
71
 
            ret = "".join(content)
72
 
        return ret
 
68
        _, content = list(self.iter_files_bytes([(file_id, None)]))[0]
 
69
        return ''.join(content)
73
70
 
74
71
    def get_file(self, file_id, path=None):
75
72
        return StringIO(self.get_file_text(file_id))
218
215
    def iter_files_bytes(self, desired_files):
219
216
        """See Tree.iter_files_bytes.
220
217
 
221
 
        This version is implemented on top of Repository.iter_files_bytes"""
 
218
        This version is implemented on top of Repository.extract_files_bytes"""
222
219
        repo_desired_files = [(f, self.get_file_revision(f), i)
223
220
                              for f, i in desired_files]
224
221
        try:
225
222
            for result in self._repository.iter_files_bytes(repo_desired_files):
226
223
                yield result
227
224
        except errors.RevisionNotPresent, e:
228
 
            raise errors.NoSuchFile(e.file_id)
 
225
            raise errors.NoSuchFile(e.revision_id)
229
226
 
230
227
    def annotate_iter(self, file_id,
231
228
                      default_revision=revision.CURRENT_REVISION):