296 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f, |
296 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f, |
297 showfunc=showfunc, ignorews=ignorews), f, tn) |
297 showfunc=showfunc, ignorews=ignorews), f, tn) |
298 |
298 |
299 def changelog(self, pos): |
299 def changelog(self, pos): |
300 def changenav(**map): |
300 def changenav(**map): |
301 def seq(factor=1): |
301 def seq(factor, maxchanges=None): |
302 yield 1 * factor |
302 if maxchanges: |
303 yield 3 * factor |
303 yield maxchanges |
304 #yield 5 * factor |
304 if maxchanges >= 20 and maxchanges <= 40: |
|
305 yield 50 |
|
306 else: |
|
307 yield 1 * factor |
|
308 yield 3 * factor |
305 for f in seq(factor * 10): |
309 for f in seq(factor * 10): |
306 yield f |
310 yield f |
307 |
311 |
308 l = [] |
312 l = [] |
309 for f in seq(): |
313 last = 0 |
310 if f < self.maxchanges / 2: |
314 for f in seq(1, self.maxchanges): |
|
315 if f < self.maxchanges or f <= last: |
311 continue |
316 continue |
312 if f > count: |
317 if f > count: |
313 break |
318 break |
|
319 last = f |
314 r = "%d" % f |
320 r = "%d" % f |
315 if pos + f < count: |
321 if pos + f < count: |
316 l.append(("+" + r, pos + f)) |
322 l.append(("+" + r, pos + f)) |
317 if pos - f >= 0: |
323 if pos - f >= 0: |
318 l.insert(0, ("-" + r, pos - f)) |
324 l.insert(0, ("-" + r, pos - f)) |