Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb.py @ 1369:b6d4ebebc35c
Allows abbreviated hashes in hgweb
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 01 Oct 2005 12:50:56 -0700 |
parents | b8c82bf3da21 |
children | cf9a1233738a |
comparison
equal
deleted
inserted
replaced
1368:d1d605d1e839 | 1369:b6d4ebebc35c |
---|---|
384 query=query, | 384 query=query, |
385 manifest=hex(mf), | 385 manifest=hex(mf), |
386 entries=changelist) | 386 entries=changelist) |
387 | 387 |
388 def changeset(self, nodeid): | 388 def changeset(self, nodeid): |
389 n = bin(nodeid) | |
390 cl = self.repo.changelog | 389 cl = self.repo.changelog |
390 n = self.repo.lookup(nodeid) | |
391 nodeid = hex(n) | |
391 changes = cl.read(n) | 392 changes = cl.read(n) |
392 p1 = cl.parents(n)[0] | 393 p1 = cl.parents(n)[0] |
393 | 394 |
394 files = [] | 395 files = [] |
395 mf = self.repo.manifest.read(changes[0]) | 396 mf = self.repo.manifest.read(changes[0]) |
420 archives=archivelist()) | 421 archives=archivelist()) |
421 | 422 |
422 def filelog(self, f, filenode): | 423 def filelog(self, f, filenode): |
423 cl = self.repo.changelog | 424 cl = self.repo.changelog |
424 fl = self.repo.file(f) | 425 fl = self.repo.file(f) |
426 filenode = hex(fl.lookup(filenode)) | |
425 count = fl.count() | 427 count = fl.count() |
426 | 428 |
427 def entries(**map): | 429 def entries(**map): |
428 l = [] | 430 l = [] |
429 parity = (count - 1) & 1 | 431 parity = (count - 1) & 1 |
452 | 454 |
453 yield self.t("filelog", file=f, filenode=filenode, entries=entries) | 455 yield self.t("filelog", file=f, filenode=filenode, entries=entries) |
454 | 456 |
455 def filerevision(self, f, node): | 457 def filerevision(self, f, node): |
456 fl = self.repo.file(f) | 458 fl = self.repo.file(f) |
457 n = bin(node) | 459 n = fl.lookup(node) |
460 node = hex(n) | |
458 text = fl.read(n) | 461 text = fl.read(n) |
459 changerev = fl.linkrev(n) | 462 changerev = fl.linkrev(n) |
460 cl = self.repo.changelog | 463 cl = self.repo.changelog |
461 cn = cl.node(changerev) | 464 cn = cl.node(changerev) |
462 cs = cl.read(cn) | 465 cs = cl.read(cn) |
484 | 487 |
485 def fileannotate(self, f, node): | 488 def fileannotate(self, f, node): |
486 bcache = {} | 489 bcache = {} |
487 ncache = {} | 490 ncache = {} |
488 fl = self.repo.file(f) | 491 fl = self.repo.file(f) |
489 n = bin(node) | 492 n = fl.lookup(node) |
493 node = hex(n) | |
490 changerev = fl.linkrev(n) | 494 changerev = fl.linkrev(n) |
491 | 495 |
492 cl = self.repo.changelog | 496 cl = self.repo.changelog |
493 cn = cl.node(changerev) | 497 cn = cl.node(changerev) |
494 cs = cl.read(cn) | 498 cs = cl.read(cn) |
533 parent=self.parents("fileannotateparent", | 537 parent=self.parents("fileannotateparent", |
534 fl.parents(n), fl.rev, file=f), | 538 fl.parents(n), fl.rev, file=f), |
535 permissions=self.repo.manifest.readflags(mfn)[f]) | 539 permissions=self.repo.manifest.readflags(mfn)[f]) |
536 | 540 |
537 def manifest(self, mnode, path): | 541 def manifest(self, mnode, path): |
538 mf = self.repo.manifest.read(bin(mnode)) | 542 man = self.repo.manifest |
539 rev = self.repo.manifest.rev(bin(mnode)) | 543 mn = man.lookup(mnode) |
544 mnode = hex(mn) | |
545 mf = man.read(mn) | |
546 rev = man.rev(mn) | |
540 node = self.repo.changelog.node(rev) | 547 node = self.repo.changelog.node(rev) |
541 mff=self.repo.manifest.readflags(bin(mnode)) | 548 mff = man.readflags(mn) |
542 | 549 |
543 files = {} | 550 files = {} |
544 | 551 |
545 p = path[1:] | 552 p = path[1:] |
546 l = len(p) | 553 l = len(p) |
615 yield self.t("tags", | 622 yield self.t("tags", |
616 manifest=hex(mf), | 623 manifest=hex(mf), |
617 entries=entries) | 624 entries=entries) |
618 | 625 |
619 def filediff(self, file, changeset): | 626 def filediff(self, file, changeset): |
620 n = bin(changeset) | |
621 cl = self.repo.changelog | 627 cl = self.repo.changelog |
628 n = self.repo.lookup(changeset) | |
629 changeset = hex(n) | |
622 p1 = cl.parents(n)[0] | 630 p1 = cl.parents(n)[0] |
623 cs = cl.read(n) | 631 cs = cl.read(n) |
624 mf = self.repo.manifest.read(cs[0]) | 632 mf = self.repo.manifest.read(cs[0]) |
625 | 633 |
626 def diff(**map): | 634 def diff(**map): |
803 req.write(z.compress(chunk)) | 811 req.write(z.compress(chunk)) |
804 | 812 |
805 req.write(z.flush()) | 813 req.write(z.flush()) |
806 | 814 |
807 elif req.form['cmd'][0] == 'archive': | 815 elif req.form['cmd'][0] == 'archive': |
808 changeset = bin(req.form['node'][0]) | 816 changeset = self.repo.lookup(req.form['node'][0]) |
809 type = req.form['type'][0] | 817 type = req.form['type'][0] |
810 if (type in self.archives and | 818 if (type in self.archives and |
811 self.repo.ui.configbool("web", "allow" + type, False)): | 819 self.repo.ui.configbool("web", "allow" + type, False)): |
812 self.archive(req, changeset, type) | 820 self.archive(req, changeset, type) |
813 return | 821 return |