diff --git a/rhodecode/lib/utils.py b/rhodecode/lib/utils.py --- a/rhodecode/lib/utils.py +++ b/rhodecode/lib/utils.py @@ -29,7 +29,6 @@ import os import logging import datetime import traceback -import ConfigParser from UserDict import DictMixin @@ -443,6 +442,24 @@ def add_cache(settings): 'memory') beaker.cache.cache_regions[region] = region_settings +def get_current_revision(): + """ + Returns tuple of (number, id) from repository containing this package + or None if repository could not be found. + """ + try: + from vcs import get_repo + from vcs.utils.helpers import get_scm + from vcs.exceptions import RepositoryError, VCSError + repopath = os.path.join(os.path.dirname(__file__), '..', '..') + scm = get_scm(repopath)[0] + repo = get_repo(path=repopath, alias=scm) + tip = repo.get_changeset() + return (tip.revision, tip.short_id) + except (ImportError, RepositoryError, VCSError), err: + logging.debug("Cannot retrieve rhodecode's revision. Original error " + "was: %s" % err) + return None #=============================================================================== # TEST FUNCTIONS AND CREATORS