mercurial/hgweb.py
changeset 173 8da1df932c16
parent 172 e9b1147db448
child 180 f25944662097
equal deleted inserted replaced
172:e9b1147db448 173:8da1df932c16
   197 
   197 
   198     def changelog(self, pos=None):
   198     def changelog(self, pos=None):
   199         def changenav():
   199         def changenav():
   200             def seq(factor = 1):
   200             def seq(factor = 1):
   201                 yield 1 * factor
   201                 yield 1 * factor
   202                 yield 2 * factor
   202                 yield 3 * factor
   203                 yield 5 * factor
   203                 #yield 5 * factor
   204                 for f in seq(factor * 10):
   204                 for f in seq(factor * 10):
   205                     yield f
   205                     yield f
       
   206 
       
   207             l = []
       
   208             for f in seq():
       
   209                 if f < self.maxchanges / 2: continue
       
   210                 if f > count: break
       
   211                 r = "%d" % f
       
   212                 if pos + f < count - (f/2): l.append(("+" + r, pos + f))
       
   213                 if pos - f >= 0 + (f/2): l.insert(0, ("-" + r, pos - f))
       
   214 
       
   215             yield self.t("naventry", rev = 0, label="(0)")
   206                     
   216                     
   207             linear = range(0, count - 2, self.maxchanges)[0:8]
   217             for label, rev in l:
   208 
   218                 yield self.t("naventry", label = label, rev = rev)
   209             for i in linear:
   219 
   210                 yield self.t("naventry", rev = max(i, 1))
   220             yield self.t("naventry", rev = count - 1, label="tip")
   211 
       
   212             for s in seq():
       
   213                 if s > count - 2: break
       
   214                 if s > linear[-1]:
       
   215                     yield self.t("naventry", rev = s)
       
   216                     
       
   217             yield self.t("naventry", rev = count - 1)
       
   218 
   221 
   219         def changelist():
   222         def changelist():
   220             parity = (start - end) & 1
   223             parity = (start - end) & 1
   221             cl = self.repo.changelog
   224             cl = self.repo.changelog
   222             l = [] # build a list in forward order for efficiency
   225             l = [] # build a list in forward order for efficiency