# HG changeset patch # User Johannes Stezenbach # Date 1139268893 21600 # Node ID 41d884f741ca4dfd5276f23d10cf6a6f6609ed55 # Parent e291d9a30befd14aab9f437d2ef5e8e08efea29f fix changenav for maxchanges != 10 for maxchanges = 25 the changelog navigation had a minimum stepsize of 30; try to calculate more useful navigation steps diff --git a/mercurial/hgweb.py b/mercurial/hgweb.py --- a/mercurial/hgweb.py +++ b/mercurial/hgweb.py @@ -298,19 +298,25 @@ class hgweb(object): def changelog(self, pos): def changenav(**map): - def seq(factor=1): - yield 1 * factor - yield 3 * factor - #yield 5 * factor + def seq(factor, maxchanges=None): + if maxchanges: + yield maxchanges + if maxchanges >= 20 and maxchanges <= 40: + yield 50 + else: + yield 1 * factor + yield 3 * factor for f in seq(factor * 10): yield f l = [] - for f in seq(): - if f < self.maxchanges / 2: + last = 0 + for f in seq(1, self.maxchanges): + if f < self.maxchanges or f <= last: continue if f > count: break + last = f r = "%d" % f if pos + f < count: l.append(("+" + r, pos + f))