def _get_object(self, sha, cls): assert len(sha) in (20, 40) ret = self.get_object(sha) if ret._type != cls._type: if cls is Commit: raise NotCommitError(ret) elif cls is Blob: raise NotBlobError(ret) elif cls is Tree: raise NotTreeError(ret) else: raise Exception("Type invalid: %r != %r" % (ret._type, cls._type)) return ret
def _get_object(self, sha, cls): assert len(sha) in (20, 40) ret = self.get_object(sha) if not isinstance(ret, cls): if cls is Commit: raise NotCommitError(ret) elif cls is Blob: raise NotBlobError(ret) elif cls is Tree: raise NotTreeError(ret) elif cls is Tag: raise NotTagError(ret) else: raise Exception("Type invalid: %r != %r" % ( ret.type_name, cls.type_name)) return ret
def lookup_foreign_revision_id(self, foreign_revid, mapping=None): """Lookup a revision id. :param foreign_revid: Foreign revision id to look up :param mapping: Mapping to use (use default mapping if not specified) :raise KeyError: If foreign revision was not found :return: bzr revision id """ if not isinstance(foreign_revid, bytes): raise TypeError(foreign_revid) if mapping is None: mapping = self.get_mapping() if foreign_revid == ZERO_SHA: return _mod_revision.NULL_REVISION commit = self._git.object_store.peel_sha(foreign_revid) if not isinstance(commit, Commit): raise NotCommitError(commit.id) revid = mapping.get_revision_id(commit) # FIXME: check testament before doing this? return revid
def from_path(cls, path): commit = ShaFile.from_path(path) if not isinstance(commit, cls): raise NotCommitError(path) return commit
def _get_commit(self, version="HEAD"): commit = self.repo[version] if not isinstance(commit, Commit): raise NotCommitError(commit) return commit