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

Fix lookup of commits in tdb.

Show diffs side-by-side

added added

removed removed

Lines of Context:
209
209
            self._commit = obj
210
210
            assert ie is None
211
211
            type_data = (self.revid, self._commit.tree)
 
212
            self.cache.idmap._by_revid[self.revid] = obj.id
212
213
        elif obj.type_name in ("blob", "tree"):
213
214
            if obj.type_name == "blob":
214
215
                revision = ie.revision
231
232
    def __init__(self):
232
233
        self._by_sha = {}
233
234
        self._by_fileid = {}
 
235
        self._by_revid = {}
234
236
 
235
237
    def lookup_blob_id(self, fileid, revision):
236
238
        return self._by_fileid[revision][fileid]
241
243
    def lookup_tree_id(self, fileid, revision):
242
244
        return self._base._by_fileid[revision][fileid]
243
245
 
 
246
    def lookup_commit(self, revid):
 
247
        return self._by_revid[revid]
 
248
 
244
249
    def revids(self):
245
250
        for key, (type, type_data) in self._by_sha.iteritems():
246
251
            if type == "commit":
403
408
    def add_object(self, obj, ie):
404
409
        sha = obj.sha().digest()
405
410
        if obj.type_name == "commit":
406
 
            self.db["commit\0" + self.revid] = "\0".join((obj.id, obj.tree))
 
411
            self.db["commit\0" + self.revid] = "\0".join((sha, obj.tree))
407
412
            type_data = (self.revid, obj.tree)
408
413
            self._commit = obj
409
414
            assert ie is None
414
419
            type_data = (ie.file_id, self.revid)
415
420
        else:
416
421
            raise AssertionError
417
 
        self.db["git\0" + sha] = "\0".join((obj.type_name,
418
 
            type_data[0], type_data[1]))
 
422
        self.db["git\0" + sha] = "\0".join((obj.type_name, ) + type_data)
419
423
 
420
424
    def finish(self):
421
425
        if self._commit is None: