Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hgweb/webcommands.py @ 17318:7ac5800dbc8f stable
hgweb: fix graph view paging
- Fix off-by-one error on displayed entries count in normal mode
- Fix incorrect paging when the top revision was lower than revcount
- Fix revcount not overriding web.maxshortchanges everywhere
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sun, 29 Jul 2012 23:16:20 +0200 |
parents | 06217d3cf8d9 |
children | 7124f984dc8d |
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py Sun Jul 29 19:44:57 2012 +0200 +++ b/mercurial/hgweb/webcommands.py Sun Jul 29 23:16:20 2012 +0200 @@ -817,7 +817,9 @@ def graph(web, req, tmpl): - rev = webutil.changectx(web.repo, req).rev() + ctx = webutil.changectx(web.repo, req) + rev = ctx.rev() + bg_height = 39 revcount = web.maxshortchanges if 'revcount' in req.form: @@ -830,20 +832,17 @@ morevars = copy.copy(tmpl.defaults['sessionvars']) morevars['revcount'] = revcount * 2 - max_rev = len(web.repo) - 1 - revcount = min(max_rev, revcount) - revnode = web.repo.changelog.node(rev) - revnode_hex = hex(revnode) - uprev = min(max_rev, rev + revcount) + count = len(web.repo) + pos = rev + start = max(0, pos - revcount + 1) + end = min(count, start + revcount) + pos = end - 1 + + uprev = min(max(0, count - 1), rev + revcount) downrev = max(0, rev - revcount) - count = len(web.repo) - changenav = webutil.revnavgen(rev, revcount, count, web.repo.changectx) - startrev = rev - # if starting revision is less than 60 set it to uprev - if rev < web.maxshortchanges: - startrev = uprev + changenav = webutil.revnavgen(pos, revcount, count, web.repo.changectx) - dag = graphmod.dagwalker(web.repo, range(startrev, downrev - 1, -1)) + dag = graphmod.dagwalker(web.repo, range(start, end)[::-1]) tree = list(graphmod.colored(dag, web.repo)) def getcolumns(tree): @@ -915,7 +914,7 @@ canvasheight=canvasheight, bg_height=bg_height, jsdata=lambda **x: graphdata(True, **x), nodes=lambda **x: graphdata(False, **x), - node=revnode_hex, changenav=changenav) + node=ctx.hex(), changenav=changenav) def _getdoc(e): doc = e[0].__doc__