# HG changeset patch # User Marcin Kuzminski # Date 1298592919 -3600 # Node ID 9b2c21245198b0f8674310b5f9523967369db3b4 # Parent c2440badab840aa7b80ceaeb1d24d89db1cae8f7 DAG fixes for vcs 0.2.0 diff -r c2440badab84 -r 9b2c21245198 rhodecode/controllers/changelog.py --- a/rhodecode/controllers/changelog.py Fri Feb 25 01:14:18 2011 +0100 +++ b/rhodecode/controllers/changelog.py Fri Feb 25 01:15:19 2011 +0100 @@ -77,21 +77,23 @@ def _graph(self, repo, size, p): - revcount = size + """ + Generates a DAG graph for mercurial + + :param repo: repo instance + :param size: number of commits to show + :param p: page number + """ if not repo.revisions or repo.alias == 'git': c.jsdata = json.dumps([]) return - max_rev = repo.revisions[-1] - + revcount = min(repo.size, size) offset = 1 if p == 1 else ((p - 1) * revcount + 1) + rev_start = repo.revisions.index(repo.revisions[(-1 * offset)]) + rev_end = max(0, rev_start - revcount) - rev_start = repo.revisions[(-1 * offset)] - - revcount = min(max_rev, revcount) - rev_end = max(0, rev_start - revcount) dag = graph_rev(repo._repo, rev_start, rev_end) - c.dag = tree = list(colored(dag)) data = [] for (id, type, ctx, vtx, edges) in tree: