/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 git_repository.py

Black-box text for "bzr log" in a git tree. Further simplification of GitRevisionTree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    inventory,
22
22
    repository,
23
23
    revision,
 
24
    revisiontree,
24
25
    urlutils,
25
26
    )
26
27
 
177
178
        return GitRevisionTree(self, revision_id)
178
179
 
179
180
    def get_inventory(self, revision_id):
 
181
        if revision_id is None:
 
182
            revision_id = revision.NULL_REVISION
 
183
        if revision_id == revision.NULL_REVISION:
 
184
            return inventory.Inventory(
 
185
                revision_id=revision_id, root_id=None)
180
186
        git_commit = ids.convert_revision_id_bzr_to_git(revision_id)
181
187
        git_inventory = self._git.get_inventory(git_commit)
182
188
        return self._parse_inventory(revision_id, git_inventory)
212
218
            entry.executable = executable
213
219
        return inv
214
220
 
215
 
class GitRevisionTree(object):
 
221
 
 
222
class GitRevisionTree(revisiontree.RevisionTree):
216
223
 
217
224
    def __init__(self, repository, revision_id):
218
 
        self.repository = repository
219
 
        self.revision_id = revision_id
220
 
        self.inventory = repository.get_inventory(revision_id)
221
 
 
222
 
    def get_file(self, file_id):
223
 
        return iterablefile.IterableFile(self.get_file_lines(file_id))
 
225
        if revision_id is None:
 
226
            revision_id = revision.NULL_REVISION
 
227
        self._inventory = repository.get_inventory(revision_id)
 
228
        self._repository = repository
 
229
        self._revision_id = revision_id
224
230
 
225
231
    def get_file_lines(self, file_id):
226
 
        obj_id = self.inventory[file_id].text_sha1
227
 
        return self.repository._git.cat_file('blob', obj_id)
228
 
 
229
 
    def is_executable(self, file_id):
230
 
        return self.inventory[file_id].executable
 
232
        obj_id = self._inventory[file_id].text_sha1
 
233
        return self._repository._git.cat_file('blob', obj_id)