equal
deleted
inserted
replaced
68 while tmpl: |
68 while tmpl: |
69 m = re.search(r"#([a-zA-Z0-9]+)((\|[a-zA-Z0-9]+)*)#", tmpl) |
69 m = re.search(r"#([a-zA-Z0-9]+)((\|[a-zA-Z0-9]+)*)#", tmpl) |
70 if m: |
70 if m: |
71 yield tmpl[:m.start(0)] |
71 yield tmpl[:m.start(0)] |
72 v = map.get(m.group(1), "") |
72 v = map.get(m.group(1), "") |
73 v = callable(v) and v() or v |
73 v = callable(v) and v(**map) or v |
74 |
74 |
75 fl = m.group(2) |
75 fl = m.group(2) |
76 if fl: |
76 if fl: |
77 for f in fl.split("|")[1:]: |
77 for f in fl.split("|")[1:]: |
78 v = filters[f](v) |
78 v = filters[f](v) |
222 for f in d: |
222 for f in d: |
223 to = r.file(f).read(mmap1[f]) |
223 to = r.file(f).read(mmap1[f]) |
224 tn = None |
224 tn = None |
225 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) |
225 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) |
226 |
226 |
227 def header(self): |
|
228 yield self.t("header") |
|
229 |
|
230 def footer(self): |
|
231 yield self.t("footer") |
|
232 |
|
233 def changelog(self, pos): |
227 def changelog(self, pos): |
234 def changenav(): |
228 def changenav(**map): |
235 def seq(factor = 1): |
229 def seq(factor = 1): |
236 yield 1 * factor |
230 yield 1 * factor |
237 yield 3 * factor |
231 yield 3 * factor |
238 #yield 5 * factor |
232 #yield 5 * factor |
239 for f in seq(factor * 10): |
233 for f in seq(factor * 10): |
252 for label, rev in l: |
246 for label, rev in l: |
253 yield self.t("naventry", label = label, rev = rev) |
247 yield self.t("naventry", label = label, rev = rev) |
254 |
248 |
255 yield self.t("naventry", label="tip") |
249 yield self.t("naventry", label="tip") |
256 |
250 |
257 def changelist(): |
251 def changelist(**map): |
258 parity = (start - end) & 1 |
252 parity = (start - end) & 1 |
259 cl = self.repo.changelog |
253 cl = self.repo.changelog |
260 l = [] # build a list in forward order for efficiency |
254 l = [] # build a list in forward order for efficiency |
261 for i in range(start, end): |
255 for i in range(start, end): |
262 n = cl.node(i) |
256 n = cl.node(i) |
293 manifest = hex(mf), |
287 manifest = hex(mf), |
294 rev = pos, changesets = count, entries = changelist) |
288 rev = pos, changesets = count, entries = changelist) |
295 |
289 |
296 def search(self, query): |
290 def search(self, query): |
297 |
291 |
298 def changelist(): |
292 def changelist(**map): |
299 cl = self.repo.changelog |
293 cl = self.repo.changelog |
300 count = 0 |
294 count = 0 |
301 qw = query.lower().split() |
295 qw = query.lower().split() |
302 |
296 |
303 def revgen(): |
297 def revgen(): |
359 mf = self.repo.manifest.read(changes[0]) |
353 mf = self.repo.manifest.read(changes[0]) |
360 for f in changes[3]: |
354 for f in changes[3]: |
361 files.append(self.t("filenodelink", |
355 files.append(self.t("filenodelink", |
362 filenode = hex(mf.get(f, nullid)), file = f)) |
356 filenode = hex(mf.get(f, nullid)), file = f)) |
363 |
357 |
364 def diff(): |
358 def diff(**map): |
365 yield self.diff(p1, n, None) |
359 yield self.diff(p1, n, None) |
366 |
360 |
367 yield self.t('changeset', |
361 yield self.t('changeset', |
368 diff = diff, |
362 diff = diff, |
369 rev = cl.rev(n), |
363 rev = cl.rev(n), |
380 def filelog(self, f, filenode): |
374 def filelog(self, f, filenode): |
381 cl = self.repo.changelog |
375 cl = self.repo.changelog |
382 fl = self.repo.file(f) |
376 fl = self.repo.file(f) |
383 count = fl.count() |
377 count = fl.count() |
384 |
378 |
385 def entries(): |
379 def entries(**map): |
386 l = [] |
380 l = [] |
387 parity = (count - 1) & 1 |
381 parity = (count - 1) & 1 |
388 |
382 |
389 for i in range(count): |
383 for i in range(count): |
390 |
384 |
455 cn = cl.node(changerev) |
449 cn = cl.node(changerev) |
456 cs = cl.read(cn) |
450 cs = cl.read(cn) |
457 t = float(cs[2].split(' ')[0]) |
451 t = float(cs[2].split(' ')[0]) |
458 mfn = cs[0] |
452 mfn = cs[0] |
459 |
453 |
460 def annotate(): |
454 def annotate(**map): |
461 parity = 1 |
455 parity = 1 |
462 last = None |
456 last = None |
463 for r, l in fl.annotate(n): |
457 for r, l in fl.annotate(n): |
464 try: |
458 try: |
465 cnode = ncache[r] |
459 cnode = ncache[r] |
525 files[short] = (f, None) |
519 files[short] = (f, None) |
526 else: |
520 else: |
527 short = os.path.basename(remain) |
521 short = os.path.basename(remain) |
528 files[short] = (f, n) |
522 files[short] = (f, n) |
529 |
523 |
530 def filelist(): |
524 def filelist(**map): |
531 parity = 0 |
525 parity = 0 |
532 fl = files.keys() |
526 fl = files.keys() |
533 fl.sort() |
527 fl.sort() |
534 for f in fl: |
528 for f in fl: |
535 full, fnode = files[f] |
529 full, fnode = files[f] |
561 mf = cl.read(cl.tip())[0] |
555 mf = cl.read(cl.tip())[0] |
562 |
556 |
563 i = self.repo.tagslist() |
557 i = self.repo.tagslist() |
564 i.reverse() |
558 i.reverse() |
565 |
559 |
566 def entries(): |
560 def entries(**map): |
567 parity = 0 |
561 parity = 0 |
568 for k,n in i: |
562 for k,n in i: |
569 yield self.t("tagentry", |
563 yield self.t("tagentry", |
570 parity = parity, |
564 parity = parity, |
571 tag = k, |
565 tag = k, |
581 cl = self.repo.changelog |
575 cl = self.repo.changelog |
582 p1 = cl.parents(n)[0] |
576 p1 = cl.parents(n)[0] |
583 cs = cl.read(n) |
577 cs = cl.read(n) |
584 mf = self.repo.manifest.read(cs[0]) |
578 mf = self.repo.manifest.read(cs[0]) |
585 |
579 |
586 def diff(): |
580 def diff(**map): |
587 yield self.diff(p1, n, file) |
581 yield self.diff(p1, n, file) |
588 |
582 |
589 yield self.t("filediff", |
583 yield self.t("filediff", |
590 file = file, |
584 file = file, |
591 filenode = hex(mf.get(file, nullid)), |
585 filenode = hex(mf.get(file, nullid)), |
598 # add tags to things |
592 # add tags to things |
599 # tags -> list of changesets corresponding to tags |
593 # tags -> list of changesets corresponding to tags |
600 # find tag, changeset, file |
594 # find tag, changeset, file |
601 |
595 |
602 def run(self): |
596 def run(self): |
|
597 def header(**map): |
|
598 yield self.t("header", **map) |
|
599 |
|
600 def footer(**map): |
|
601 yield self.t("footer", **map) |
|
602 |
603 self.refresh() |
603 self.refresh() |
604 args = cgi.parse() |
604 args = cgi.parse() |
605 |
605 |
606 m = os.path.join(self.templates, "map") |
606 m = os.path.join(self.templates, "map") |
607 if args.has_key('style'): |
607 if args.has_key('style'): |
616 url = "http://%s%s%s" % (os.environ["SERVER_NAME"], port, uri) |
616 url = "http://%s%s%s" % (os.environ["SERVER_NAME"], port, uri) |
617 |
617 |
618 self.t = templater(m, self.filters, |
618 self.t = templater(m, self.filters, |
619 {"url":url, |
619 {"url":url, |
620 "repo":self.reponame, |
620 "repo":self.reponame, |
621 "header":self.header(), |
621 "header":header, |
622 "footer":self.footer(), |
622 "footer":footer, |
623 }) |
623 }) |
624 |
624 |
625 if not args.has_key('cmd') or args['cmd'][0] == 'changelog': |
625 if not args.has_key('cmd') or args['cmd'][0] == 'changelog': |
626 c = self.repo.changelog.count() - 1 |
626 c = self.repo.changelog.count() - 1 |
627 hi = c |
627 hi = c |