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

Cope with repositories that don't have a _transport attribute.

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
from bzrlib.plugins.git.commit import (
43
43
    GitCommitBuilder,
44
44
    )
 
45
from bzrlib.plugins.git.foreign import (
 
46
    versionedfiles,
 
47
    )
45
48
from bzrlib.plugins.git.inventory import (
46
49
    GitInventory,
47
50
    )
51
54
    mapping_registry,
52
55
    )
53
56
from bzrlib.plugins.git.versionedfiles import (
54
 
    GitRevisions,
55
57
    GitTexts,
56
58
    )
57
59
 
90
92
    def make_working_trees(self):
91
93
        return True
92
94
 
93
 
    def revision_graph_can_have_wrong_parents(self):
94
 
        return False
95
 
 
96
95
    def dfetch(self, source, stop_revision):
97
96
        interrepo = repository.InterRepository.get(source, self)
98
97
        return interrepo.dfetch(stop_revision)
113
112
        self.base = gitdir.root_transport.base
114
113
        self._git = gitdir._git
115
114
        self.texts = None
116
 
        self.signatures = None
117
 
        self.revisions = GitRevisions(self._git.object_store)
118
 
        self.inventories = None
 
115
        self.signatures = versionedfiles.VirtualSignatureTexts(self)
 
116
        self.revisions = versionedfiles.VirtualRevisionTexts(self)
 
117
        self.inventories = versionedfiles.VirtualInventoryTexts(self)
119
118
        self.texts = GitTexts(self)
120
119
 
121
120
    def all_revision_ids(self):
232
231
class GitRevisionTree(revisiontree.RevisionTree):
233
232
 
234
233
    def __init__(self, repository, revision_id):
 
234
        self._repository = repository
235
235
        self._revision_id = revision_id
236
 
        self._repository = repository
237
 
        store = repository._git.object_store
238
236
        assert isinstance(revision_id, str)
239
237
        git_id, self.mapping = repository.lookup_git_revid(revision_id)
240
238
        try:
241
 
            commit = store[git_id]
 
239
            commit = repository._git.commit(git_id)
242
240
        except KeyError, r:
243
241
            raise errors.NoSuchRevision(repository, revision_id)
244
242
        self.tree = commit.tree
245
 
        self._inventory = GitInventory(self.tree, self.mapping, store, 
246
 
                                       revision_id)
 
243
        self._inventory = GitInventory(self.tree, self.mapping, repository._git.object_store, revision_id)
247
244
 
248
245
    def get_revision_id(self):
249
246
        return self._revision_id
250
247
 
251
 
    def get_file_text(self, file_id, path=None):
252
 
        if path is not None:
253
 
            entry = self._inventory._get_ie(path)
254
 
        else:
255
 
            entry = self._inventory[file_id]
 
248
    def get_file_text(self, file_id):
 
249
        entry = self._inventory[file_id]
256
250
        if entry.kind == 'directory': return ""
257
251
        return entry.object.data
258
252
 
271
265
 
272
266
    def check_conversion_target(self, target_repo_format):
273
267
        return target_repo_format.rich_root_data
274
 
 
275
 
    def network_name(self):
276
 
        return "git"