Mercurial > kallithea
diff rhodecode/lib/__init__.py @ 1466:ad5a543a9b2f beta
Code cleanup
- extended repository models with scm functions
- moved get_changeset_safe function to lib
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 12 Sep 2011 02:42:06 +0300 |
parents | b7563ad4e7ee |
children | 76b358f81926 |
line wrap: on
line diff
--- a/rhodecode/lib/__init__.py Mon Sep 12 02:24:52 2011 +0300 +++ b/rhodecode/lib/__init__.py Mon Sep 12 02:42:06 2011 +0300 @@ -140,7 +140,7 @@ def generate_api_key(username, salt=None): """ - Generates unique API key for given username,if salt is not given + Generates unique API key for given username, if salt is not given it'll be generated from some random string :param username: username as string @@ -342,3 +342,23 @@ return ''.join(uri) +def get_changeset_safe(repo, rev): + """ + Safe version of get_changeset if this changeset doesn't exists for a + repo it returns a Dummy one instead + + :param repo: + :param rev: + """ + from vcs.backends.base import BaseRepository + from vcs.exceptions import RepositoryError + if not isinstance(repo, BaseRepository): + raise Exception('You must pass an Repository ' + 'object as first argument got %s', type(repo)) + + try: + cs = repo.get_changeset(rev) + except RepositoryError: + from rhodecode.lib.utils import EmptyChangeset + cs = EmptyChangeset(requested_revision=rev) + return cs \ No newline at end of file