Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/hgweb_mod.py @ 3205:48395d2692de
hgweb: kill #manifest#
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Fri, 29 Sep 2006 16:26:09 -0700 |
parents | 76ab39df0917 |
children | 79fd7a92f3e2 |
comparison
equal
deleted
inserted
replaced
3200:367a009c2acb | 3205:48395d2692de |
---|---|
200 "parent": self.siblings(cl.parents(n), cl.rev, | 200 "parent": self.siblings(cl.parents(n), cl.rev, |
201 cl.rev(n) - 1), | 201 cl.rev(n) - 1), |
202 "child": self.siblings(cl.children(n), cl.rev, | 202 "child": self.siblings(cl.children(n), cl.rev, |
203 cl.rev(n) + 1), | 203 cl.rev(n) + 1), |
204 "changelogtag": self.showtag("changelogtag",n), | 204 "changelogtag": self.showtag("changelogtag",n), |
205 "manifest": hex(changes[0]), | |
206 "desc": changes[4], | 205 "desc": changes[4], |
207 "date": changes[2], | 206 "date": changes[2], |
208 "files": self.listfilediffs(changes[3], n), | 207 "files": self.listfilediffs(changes[3], n), |
209 "rev": i, | 208 "rev": i, |
210 "node": hn}) | 209 "node": hn}) |
221 end = min(count, start + maxchanges) | 220 end = min(count, start + maxchanges) |
222 pos = end - 1 | 221 pos = end - 1 |
223 | 222 |
224 yield self.t(shortlog and 'shortlog' or 'changelog', | 223 yield self.t(shortlog and 'shortlog' or 'changelog', |
225 changenav=changenav, | 224 changenav=changenav, |
226 manifest=hex(mf), | 225 node=hex(cl.tip()), |
227 rev=pos, changesets=count, entries=changelist, | 226 rev=pos, changesets=count, entries=changelist, |
228 archives=self.archivelist("tip")) | 227 archives=self.archivelist("tip")) |
229 | 228 |
230 def search(self, query): | 229 def search(self, query): |
231 | 230 |
263 parity=self.stripes(count), | 262 parity=self.stripes(count), |
264 author=changes[1], | 263 author=changes[1], |
265 parent=self.siblings(cl.parents(n), cl.rev), | 264 parent=self.siblings(cl.parents(n), cl.rev), |
266 child=self.siblings(cl.children(n), cl.rev), | 265 child=self.siblings(cl.children(n), cl.rev), |
267 changelogtag=self.showtag("changelogtag",n), | 266 changelogtag=self.showtag("changelogtag",n), |
268 manifest=hex(changes[0]), | |
269 desc=changes[4], | 267 desc=changes[4], |
270 date=changes[2], | 268 date=changes[2], |
271 files=self.listfilediffs(changes[3], n), | 269 files=self.listfilediffs(changes[3], n), |
272 rev=i, | 270 rev=i, |
273 node=hn) | 271 node=hn) |
278 cl = self.repo.changelog | 276 cl = self.repo.changelog |
279 mf = cl.read(cl.tip())[0] | 277 mf = cl.read(cl.tip())[0] |
280 | 278 |
281 yield self.t('search', | 279 yield self.t('search', |
282 query=query, | 280 query=query, |
283 manifest=hex(mf), | 281 node=hex(cl.tip()), |
284 entries=changelist) | 282 entries=changelist) |
285 | 283 |
286 def changeset(self, nodeid): | 284 def changeset(self, nodeid): |
287 cl = self.repo.changelog | 285 cl = self.repo.changelog |
288 n = self.repo.lookup(nodeid) | 286 n = self.repo.lookup(nodeid) |
307 rev=cl.rev(n), | 305 rev=cl.rev(n), |
308 node=nodeid, | 306 node=nodeid, |
309 parent=self.siblings(cl.parents(n), cl.rev), | 307 parent=self.siblings(cl.parents(n), cl.rev), |
310 child=self.siblings(cl.children(n), cl.rev), | 308 child=self.siblings(cl.children(n), cl.rev), |
311 changesettag=self.showtag("changesettag",n), | 309 changesettag=self.showtag("changesettag",n), |
312 manifest=hex(changes[0]), | |
313 author=changes[1], | 310 author=changes[1], |
314 desc=changes[4], | 311 desc=changes[4], |
315 date=changes[2], | 312 date=changes[2], |
316 files=files, | 313 files=files, |
317 archives=self.archivelist(nodeid)) | 314 archives=self.archivelist(nodeid)) |
383 text=lines(), | 380 text=lines(), |
384 raw=rawtext, | 381 raw=rawtext, |
385 mimetype=mt, | 382 mimetype=mt, |
386 rev=changerev, | 383 rev=changerev, |
387 node=hex(cn), | 384 node=hex(cn), |
388 manifest=hex(mfn), | |
389 author=cs[1], | 385 author=cs[1], |
390 date=cs[2], | 386 date=cs[2], |
391 parent=self.siblings(fl.parents(n), fl.rev, file=f), | 387 parent=self.siblings(fl.parents(n), fl.rev, file=f), |
392 child=self.siblings(fl.children(n), fl.rev, file=f), | 388 child=self.siblings(fl.children(n), fl.rev, file=f), |
393 rename=self.renamelink(fl, n), | 389 rename=self.renamelink(fl, n), |
422 filenode=node, | 418 filenode=node, |
423 annotate=annotate, | 419 annotate=annotate, |
424 path=_up(f), | 420 path=_up(f), |
425 rev=fctx.rev(), | 421 rev=fctx.rev(), |
426 node=hex(fctx.node()), | 422 node=hex(fctx.node()), |
427 manifest=hex(fctx.changectx().changeset()[0]), | |
428 author=fctx.user(), | 423 author=fctx.user(), |
429 date=fctx.date(), | 424 date=fctx.date(), |
430 rename=self.renamelink(fl, n), | 425 rename=self.renamelink(fl, n), |
431 parent=self.siblings(fl.parents(n), fl.rev, file=f), | 426 parent=self.siblings(fl.parents(n), fl.rev, file=f), |
432 child=self.siblings(fl.children(n), fl.rev, file=f), | 427 child=self.siblings(fl.children(n), fl.rev, file=f), |
433 permissions=fctx.manifest().execf(f)) | 428 permissions=fctx.manifest().execf(f)) |
434 | 429 |
435 def manifest(self, mnode, path): | 430 def manifest(self, ctx, path): |
436 man = self.repo.manifest | 431 mf = ctx.manifest() |
437 mn = man.lookup(mnode) | 432 node = ctx.node() |
438 mnode = hex(mn) | |
439 mf = man.read(mn) | |
440 rev = man.rev(mn) | |
441 changerev = man.linkrev(mn) | |
442 node = self.repo.changelog.node(changerev) | |
443 | 433 |
444 files = {} | 434 files = {} |
445 | 435 |
446 p = path[1:] | 436 p = path[1:] |
447 if p and p[-1] != "/": | 437 if p and p[-1] != "/": |
467 full, fnode = files[f] | 457 full, fnode = files[f] |
468 if not fnode: | 458 if not fnode: |
469 continue | 459 continue |
470 | 460 |
471 yield {"file": full, | 461 yield {"file": full, |
472 "manifest": mnode, | |
473 "filenode": hex(fnode), | 462 "filenode": hex(fnode), |
474 "parity": self.stripes(parity), | 463 "parity": self.stripes(parity), |
475 "basename": f, | 464 "basename": f, |
476 "permissions": mf.execf(full)} | 465 "permissions": mf.execf(full)} |
477 parity += 1 | 466 parity += 1 |
485 if fnode: | 474 if fnode: |
486 continue | 475 continue |
487 | 476 |
488 yield {"parity": self.stripes(parity), | 477 yield {"parity": self.stripes(parity), |
489 "path": os.path.join(path, f), | 478 "path": os.path.join(path, f), |
490 "manifest": mnode, | |
491 "basename": f[:-1]} | 479 "basename": f[:-1]} |
492 parity += 1 | 480 parity += 1 |
493 | 481 |
494 yield self.t("manifest", | 482 yield self.t("manifest", |
495 manifest=mnode, | 483 rev=ctx.rev(), |
496 rev=rev, | |
497 node=hex(node), | 484 node=hex(node), |
498 path=path, | 485 path=path, |
499 up=_up(path), | 486 up=_up(path), |
500 fentries=filelist, | 487 fentries=filelist, |
501 dentries=dirlist, | 488 dentries=dirlist, |
502 archives=self.archivelist(hex(node))) | 489 archives=self.archivelist(hex(node))) |
503 | 490 |
504 def tags(self): | 491 def tags(self): |
505 cl = self.repo.changelog | 492 cl = self.repo.changelog |
506 mf = cl.read(cl.tip())[0] | |
507 | 493 |
508 i = self.repo.tagslist() | 494 i = self.repo.tagslist() |
509 i.reverse() | 495 i.reverse() |
510 | 496 |
511 def entries(notip=False, **map): | 497 def entries(notip=False, **map): |
512 parity = 0 | 498 parity = 0 |
513 for k,n in i: | 499 for k,n in i: |
514 if notip and k == "tip": continue | 500 if notip and k == "tip": continue |
515 yield {"parity": self.stripes(parity), | 501 yield {"parity": self.stripes(parity), |
516 "tag": k, | 502 "tag": k, |
517 "tagmanifest": hex(cl.read(n)[0]), | |
518 "date": cl.read(n)[2], | 503 "date": cl.read(n)[2], |
519 "node": hex(n)} | 504 "node": hex(n)} |
520 parity += 1 | 505 parity += 1 |
521 | 506 |
522 yield self.t("tags", | 507 yield self.t("tags", |
523 manifest=hex(mf), | 508 node=hex(self.repo.changelog.tip()), |
524 entries=lambda **x: entries(False, **x), | 509 entries=lambda **x: entries(False, **x), |
525 entriesnotip=lambda **x: entries(True, **x)) | 510 entriesnotip=lambda **x: entries(True, **x)) |
526 | 511 |
527 def summary(self): | 512 def summary(self): |
528 cl = self.repo.changelog | 513 cl = self.repo.changelog |
529 mf = cl.read(cl.tip())[0] | |
530 | 514 |
531 i = self.repo.tagslist() | 515 i = self.repo.tagslist() |
532 i.reverse() | 516 i.reverse() |
533 | 517 |
534 def tagentries(**map): | 518 def tagentries(**map): |
548 | 532 |
549 yield self.t("tagentry", | 533 yield self.t("tagentry", |
550 parity = self.stripes(parity), | 534 parity = self.stripes(parity), |
551 tag = k, | 535 tag = k, |
552 node = hex(n), | 536 node = hex(n), |
553 date = t, | 537 date = t) |
554 tagmanifest = hex(m)) | |
555 parity += 1 | 538 parity += 1 |
556 | 539 |
557 def changelist(**map): | 540 def changelist(**map): |
558 parity = 0 | 541 parity = 0 |
559 cl = self.repo.changelog | 542 cl = self.repo.changelog |
566 | 549 |
567 l.insert(0, self.t( | 550 l.insert(0, self.t( |
568 'shortlogentry', | 551 'shortlogentry', |
569 parity = parity, | 552 parity = parity, |
570 author = changes[1], | 553 author = changes[1], |
571 manifest = hex(changes[0]), | |
572 desc = changes[4], | 554 desc = changes[4], |
573 date = t, | 555 date = t, |
574 rev = i, | 556 rev = i, |
575 node = hn)) | 557 node = hn)) |
576 parity = 1 - parity | 558 parity = 1 - parity |
577 | 559 |
578 yield l | 560 yield l |
579 | 561 |
580 cl = self.repo.changelog | |
581 mf = cl.read(cl.tip())[0] | |
582 count = cl.count() | 562 count = cl.count() |
583 start = max(0, count - self.maxchanges) | 563 start = max(0, count - self.maxchanges) |
584 end = min(count, start + self.maxchanges) | 564 end = min(count, start + self.maxchanges) |
585 | 565 |
586 yield self.t("summary", | 566 yield self.t("summary", |
587 desc = self.repo.ui.config("web", "description", "unknown"), | 567 desc = self.repo.ui.config("web", "description", "unknown"), |
588 owner = (self.repo.ui.config("ui", "username") or # preferred | 568 owner = (self.repo.ui.config("ui", "username") or # preferred |
589 self.repo.ui.config("web", "contact") or # deprecated | 569 self.repo.ui.config("web", "contact") or # deprecated |
590 self.repo.ui.config("web", "author", "unknown")), # also | 570 self.repo.ui.config("web", "author", "unknown")), # also |
591 lastchange = (0, 0), # FIXME | 571 lastchange = (0, 0), # FIXME |
592 manifest = hex(mf), | |
593 tags = tagentries, | 572 tags = tagentries, |
594 shortlog = changelist, | 573 shortlog = changelist, |
574 node = hex(self.repo.changelog.tip()), | |
595 archives=self.archivelist("tip")) | 575 archives=self.archivelist("tip")) |
596 | 576 |
597 def filediff(self, file, changeset): | 577 def filediff(self, file, changeset): |
598 cl = self.repo.changelog | 578 cl = self.repo.changelog |
599 n = self.repo.lookup(changeset) | 579 n = self.repo.lookup(changeset) |
691 if value is None: | 671 if value is None: |
692 value = form[k] | 672 value = form[k] |
693 form[name] = value | 673 form[name] = value |
694 del form[k] | 674 del form[k] |
695 | 675 |
676 if form.has_key('manifest'): | |
677 changeid = req.form['manifest'][0] | |
678 try: | |
679 req.changectx = self.repo.changectx(changeid) | |
680 except hg.RepoError: | |
681 man = self.repo.manifest | |
682 mn = man.lookup(changeid) | |
683 req.changectx = self.repo.changectx(man.linkrev(mn)) | |
684 | |
696 self.refresh() | 685 self.refresh() |
697 | 686 |
698 expand_form(req.form) | 687 expand_form(req.form) |
699 | 688 |
700 m = os.path.join(self.templatepath, "map") | 689 m = os.path.join(self.templatepath, "map") |
769 | 758 |
770 def do_changeset(self, req): | 759 def do_changeset(self, req): |
771 req.write(self.changeset(req.form['node'][0])) | 760 req.write(self.changeset(req.form['node'][0])) |
772 | 761 |
773 def do_manifest(self, req): | 762 def do_manifest(self, req): |
774 req.write(self.manifest(req.form['manifest'][0], | 763 req.write(self.manifest(req.changectx, |
775 self.cleanpath(req.form['path'][0]))) | 764 self.cleanpath(req.form['path'][0]))) |
776 | 765 |
777 def do_tags(self, req): | 766 def do_tags(self, req): |
778 req.write(self.tags()) | 767 req.write(self.tags()) |
779 | 768 |