code: def _get_revision(self, revision):
          
  
          if self._empty:
              raise EmptyRepositoryError("There are no changesets yet")
  
          if revision in [-1, 'tip', None]:
              revision = 'tip'
  
          try:
              revision = hex(self._repo.lookup(revision))
          except (IndexError, ValueError, RepoLookupError, TypeError):
              raise ChangesetDoesNotExistError("Revision %s does not "
                                      "exist for this repository"
                                      % (revision))
          return revision
docs: Get's an ID revision given as str. This will always return a fill
          40 char revision number
  
          :param revision: str or int or None