def lookup_bzr_revision_id(self, revision_id): """See ForeignRepository.lookup_bzr_revision_id().""" assert type(revision_id) is str, "invalid revid: %r" % revision_id # TODO: Handle round-tripped revisions try: return mapping_registry.revision_id_bzr_to_foreign(revision_id) except errors.InvalidRevisionId: raise errors.NoSuchRevision(self, revision_id)
def lookup_revid(self, revid): """See RevisionIdMapCache.lookup_revid.""" self.mutter('lookup-revid %s', revid) try: (min_revnum, max_revnum, mapping_name, path) = self.db[b"native-revid/" + revid].split(b" ", 3) except KeyError: raise errors.NoSuchRevision(self, revid) return (path.decode('utf-8'), int(min_revnum), int(max_revnum), mapping_name)
def lookup_revid(self, revid): """See RevisionIdMapCache.lookup_revid.""" assert isinstance(revid, bytes) self.mutter("lookup revid %r", revid) ret = self.execute( "select path, min_revnum, max_revnum, mapping from revmap where revid=? order by abs(min_revnum-max_revnum) asc", (revid,)).fetchone() if ret is None: raise errors.NoSuchRevision(self, revid) (path, min_revnum, max_revnum, mapping) = (ret[0].encode("utf-8"), int(ret[1]), int(ret[2]), ret[3].encode("utf-8")) if min_revnum > max_revnum: return (path, max_revnum, min_revnum, mapping) else: return (path, min_revnum, max_revnum, mapping)
def get_rev_id(self, revno, history=None): """Find the revision id of the specified revno.""" with self.lock_read(): if revno == 0: return NULL_REVISION last_revno, last_revid = self.last_revision_info() if revno == last_revno: return last_revid if last_revno is None: self._extend_partial_history() return self._partial_revision_history_cache[ len(self._partial_revision_history_cache) - revno ] else: if revno <= 0 or revno > last_revno: raise errors.NoSuchRevision(self, revno) distance_from_last = last_revno - revno if len(self._partial_revision_history_cache) <= distance_from_last: self._extend_partial_history(distance_from_last) return self._partial_revision_history_cache[distance_from_last]