# HG changeset patch # User Marcin Kuzminski # Date 1273407200 -7200 # Node ID 36102488d6344bc2876318d5aa45fa6829833b5a # Parent 28f28d4232688832588fe1a0da7e98f8942cfc09 Added empty changeset to use in newly created repository, and used this inside a hg model in repos list diff -r 28f28d423268 -r 36102488d634 pylons_app/lib/utils.py --- a/pylons_app/lib/utils.py Sun May 09 13:20:52 2010 +0200 +++ b/pylons_app/lib/utils.py Sun May 09 14:13:20 2010 +0200 @@ -90,5 +90,17 @@ return baseui +from vcs.backends.base import BaseChangeset +from vcs.utils.lazy import LazyProperty +class EmptyChangeset(BaseChangeset): + + revision = -1 + @LazyProperty + def raw_id(self): + """ + Returns raw string identifing this changeset, useful for web + representation. + """ + return '0' * 12 diff -r 28f28d423268 -r 36102488d634 pylons_app/model/hg_model.py --- a/pylons_app/model/hg_model.py Sun May 09 13:20:52 2010 +0200 +++ b/pylons_app/model/hg_model.py Sun May 09 14:13:20 2010 +0200 @@ -3,6 +3,7 @@ # # Copyright (c) 2010 marcink. All rights reserved. # +from vcs.exceptions import RepositoryError ''' Created on Apr 9, 2010 @@ -37,8 +38,12 @@ continue last_change = mercurial_repo.last_change - tip_rev = mercurial_repo._get_revision('tip') - tip = mercurial_repo.get_changeset(tip_rev) + try: + tip = mercurial_repo.get_changeset('tip') + except RepositoryError: + from pylons_app.lib.utils import EmptyChangeset + tip = EmptyChangeset() + tmp_d = {} tmp_d['name'] = mercurial_repo.name tmp_d['name_sort'] = tmp_d['name'] @@ -46,9 +51,9 @@ tmp_d['description_sort'] = tmp_d['description'] tmp_d['last_change'] = last_change tmp_d['last_change_sort'] = last_change[1] - last_change[0] - tmp_d['tip'] = tip._short - tmp_d['tip_sort'] = tip_rev - tmp_d['rev'] = tip_rev + tmp_d['tip'] = tip.raw_id + tmp_d['tip_sort'] = tip.revision + tmp_d['rev'] = tip.revision tmp_d['contact'] = mercurial_repo.contact tmp_d['contact_sort'] = tmp_d['contact'] tmp_d['repo_archives'] = list(mercurial_repo._get_archives())