comparison mercurial/hgweb.py @ 173:8da1df932c16

hgweb: make navigation of changesets a bit nicer
author mpm@selenic.com
date Thu, 26 May 2005 22:47:43 -0800
parents e9b1147db448
children f25944662097
comparison
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