diff --git a/rhodecode/controllers/changelog.py b/rhodecode/controllers/changelog.py --- a/rhodecode/controllers/changelog.py +++ b/rhodecode/controllers/changelog.py @@ -26,7 +26,6 @@ import logging import traceback -from mercurial import graphmod from pylons import request, url, session, tmpl_context as c from pylons.controllers.util import redirect from pylons.i18n.translation import _ @@ -36,9 +35,8 @@ from rhodecode.lib.auth import LoginRequ from rhodecode.lib.base import BaseRepoController, render from rhodecode.lib.helpers import RepoPage from rhodecode.lib.compat import json - +from rhodecode.lib.graphmod import _colored, _dagwalker from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError -from rhodecode.model.db import Repository log = logging.getLogger(__name__) @@ -60,13 +58,13 @@ class ChangelogController(BaseRepoContro int_size = int(request.params.get('size')) except ValueError: int_size = default - int_size = int_size if int_size <= limit else limit - c.size = int_size + c.size = max(min(int_size, limit), 1) session['changelog_size'] = c.size session.save() else: c.size = int(session.get('changelog_size', default)) - + # min size must be 1 + c.size = max(c.size, 1) p = int(request.params.get('page', 1)) branch_name = request.params.get('branch', None) try: @@ -83,8 +81,8 @@ class ChangelogController(BaseRepoContro items_per_page=c.size, branch=branch_name) collection = list(c.pagination) page_revisions = [x.raw_id for x in collection] - c.comments = c.rhodecode_db_repo.comments(page_revisions) - + c.comments = c.rhodecode_db_repo.get_comments(page_revisions) + c.statuses = c.rhodecode_db_repo.statuses(page_revisions) except (RepositoryError, ChangesetDoesNotExistError, Exception), e: log.error(traceback.format_exc()) h.flash(str(e), category='warning') @@ -118,18 +116,9 @@ class ChangelogController(BaseRepoContro data = [] revs = [x.revision for x in collection] - if repo.alias == 'git': - for _ in revs: - vtx = [0, 1] - edges = [[0, 0, 1]] - data.append(['', vtx, edges]) - - elif repo.alias == 'hg': - dag = graphmod.dagwalker(repo._repo, revs) - c.dag = graphmod.colored(dag, repo._repo) - for (id, type, ctx, vtx, edges) in c.dag: - if type != graphmod.CHANGESET: - continue - data.append(['', vtx, edges]) + dag = _dagwalker(repo, revs, repo.alias) + dag = _colored(dag) + for (id, type, ctx, vtx, edges) in dag: + data.append(['', vtx, edges]) c.jsdata = json.dumps(data)