comparison mercurial/hgweb/webcommands.py @ 19487:8cfa3a3664a5 stable

hgweb: fix incorrect revisions count in graph (issue3977) Actual amount of revisions is used now instead of their numbers in the repo before to deal with skipped numbers correctly.
author Alexander Plavin <me@aplavin.ru>
date Thu, 25 Jul 2013 02:41:22 +0400
parents 002b711a3e8a
children e111d5e6bbbd
comparison
equal deleted inserted replaced
19486:002b711a3e8a 19487:8cfa3a3664a5
873 morevars = copy.copy(tmpl.defaults['sessionvars']) 873 morevars = copy.copy(tmpl.defaults['sessionvars'])
874 morevars['revcount'] = revcount * 2 874 morevars['revcount'] = revcount * 2
875 875
876 count = len(web.repo) 876 count = len(web.repo)
877 pos = rev 877 pos = rev
878 start = max(0, pos - revcount + 1)
879 end = pos + 1
880 878
881 uprev = min(max(0, count - 1), rev + revcount) 879 uprev = min(max(0, count - 1), rev + revcount)
882 downrev = max(0, rev - revcount) 880 downrev = max(0, rev - revcount)
883 changenav = webutil.revnav(web.repo).gen(pos, revcount, count) 881 changenav = webutil.revnav(web.repo).gen(pos, revcount, count)
884 882
885 tree = [] 883 tree = []
886 if start < end: 884 if pos != -1:
887 revs = list(web.repo.changelog.revs(end - 1, start)) 885 allrevs = web.repo.changelog.revs(pos, 0)
886 revs = []
887 for i in allrevs:
888 revs.append(i)
889 if len(revs) >= revcount:
890 break
891
888 dag = graphmod.dagwalker(web.repo, revs) 892 dag = graphmod.dagwalker(web.repo, revs)
889 tree = list(graphmod.colored(dag, web.repo)) 893 tree = list(graphmod.colored(dag, web.repo))
890 894
891 def getcolumns(tree): 895 def getcolumns(tree):
892 cols = 0 896 cols = 0