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
3193: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