changeset 1083:9b2c21245198 beta

DAG fixes for vcs 0.2.0
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 25 Feb 2011 01:15:19 +0100
parents c2440badab84
children 17721a2dfadb
files rhodecode/controllers/changelog.py
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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: