61
62
"""Return the revision id associated with this tree."""
62
63
return self._revision_id
65
@symbol_versioning.deprecated_method(symbol_versioning.zero_ninety)
64
66
def get_weave(self, file_id):
67
return self._get_weave(file_id)
69
def _get_weave(self, file_id):
65
70
file_id = osutils.safe_file_id(file_id)
66
71
return self._weave_store.get_weave(file_id,
67
72
self._repository.get_transaction())
69
74
def get_file_lines(self, file_id):
70
75
file_id = osutils.safe_file_id(file_id)
71
76
ie = self._inventory[file_id]
72
weave = self.get_weave(file_id)
77
weave = self._get_weave(file_id)
73
78
return weave.get_lines(ie.revision)
75
80
def get_file_text(self, file_id):
76
81
file_id = osutils.safe_file_id(file_id)
77
82
return ''.join(self.get_file_lines(file_id))
79
def get_file(self, file_id):
84
def get_file(self, file_id, path=None):
80
85
file_id = osutils.safe_file_id(file_id)
81
86
return StringIO(self.get_file_text(file_id))
83
def annotate_iter(self, file_id):
88
def iter_files_bytes(self, desired_files):
89
"""See Tree.extract_files_bytes.
91
This version is implemented on top of Repository.extract_files_bytes"""
92
repo_desired_files = [(f, self.inventory[f].revision, i)
93
for f, i in desired_files]
94
return self._repository.iter_files_bytes(repo_desired_files)
96
def annotate_iter(self, file_id,
97
default_revision=revision.CURRENT_REVISION):
84
98
"""See Tree.annotate_iter"""
85
99
file_id = osutils.safe_file_id(file_id)
86
w = self.get_weave(file_id)
100
w = self._get_weave(file_id)
87
101
return w.annotate_iter(self.inventory[file_id].revision)
89
103
def get_file_size(self, file_id):
148
162
assert entry.text_size is not None
149
163
return entry.text_size
165
def _get_ancestors(self, default_revision):
166
return set(self._repository.get_ancestry(self._revision_id,
151
169
def lock_read(self):
152
170
self._repository.lock_read()