~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revisiontree.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-04-19 12:54:46 UTC
  • mfrom: (5793.2.6 revisiontree-get-revision)
  • Revision ID: pqm@pqm.ubuntu.com-20110419125446-s16r0ck8t1ig6u7n
(jelmer) Add RevisionTree.get_file_revision,
 replacing an existing static method on Tree. 
 This should also make it unnecessary to access the inventory in a couple
 more cases. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
        """Return the revision id associated with this tree."""
57
57
        return self._revision_id
58
58
 
 
59
    def get_file_revision(self, file_id, path=None):
 
60
        """Return the revision id in which a file was last changed."""
 
61
        raise NotImplementedError(self.get_file_revision)
 
62
 
59
63
    def get_file_text(self, file_id, path=None):
60
64
        _, content = list(self.iter_files_bytes([(file_id, None)]))[0]
61
65
        return ''.join(content)
108
112
            return ie.text_sha1
109
113
        return None
110
114
 
 
115
    def get_file_revision(self, file_id, path=None):
 
116
        ie = self._inventory[file_id]
 
117
        return ie.revision
 
118
 
111
119
    def is_executable(self, file_id, path=None):
112
120
        ie = self._inventory[file_id]
113
121
        if ie.kind != "file":
208
216
        """See Tree.iter_files_bytes.
209
217
 
210
218
        This version is implemented on top of Repository.extract_files_bytes"""
211
 
        repo_desired_files = [(f, self.inventory[f].revision, i)
 
219
        repo_desired_files = [(f, self.get_file_revision(f), i)
212
220
                              for f, i in desired_files]
213
221
        try:
214
222
            for result in self._repository.iter_files_bytes(repo_desired_files):
219
227
    def annotate_iter(self, file_id,
220
228
                      default_revision=revision.CURRENT_REVISION):
221
229
        """See Tree.annotate_iter"""
222
 
        text_key = (file_id, self.inventory[file_id].revision)
 
230
        text_key = (file_id, self.get_file_revision(file_id))
223
231
        annotator = self._repository.texts.get_annotator()
224
232
        annotations = annotator.annotate_flat(text_key)
225
233
        return [(key[-1], line) for key, line in annotations]