comparison mercurial/hgweb/webcommands.py @ 7183:099b4f9be5ab

hgweb: working diff for removed files
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Mon, 20 Oct 2008 14:13:37 +0200
parents 295af5bc1bcc
children 810ca383da9c
comparison
equal deleted inserted replaced
7182:295af5bc1bcc 7183:099b4f9be5ab
415 shortlog=changelist, 415 shortlog=changelist,
416 node=hex(cl.tip()), 416 node=hex(cl.tip()),
417 archives=web.archivelist("tip")) 417 archives=web.archivelist("tip"))
418 418
419 def filediff(web, req, tmpl): 419 def filediff(web, req, tmpl):
420 fctx = webutil.filectx(web.repo, req) 420 fctx, ctx = None, None
421 n = fctx.node() 421 try:
422 path = fctx.path() 422 fctx = webutil.filectx(web.repo, req)
423 parents = fctx.parents() 423 except LookupError, inst:
424 p1 = parents and parents[0].node() or nullid 424 ctx = webutil.changectx(web.repo, req)
425 path = webutil.cleanpath(web.repo, req.form['file'][0])
426 if path not in ctx.files():
427 raise
428
429 if fctx is not None:
430 n = fctx.node()
431 path = fctx.path()
432 parents = fctx.parents()
433 p1 = parents and parents[0].node() or nullid
434 else:
435 n = ctx.node()
436 # path already defined in except clause
437 parents = ctx.parents()
438 p1 = parents and parents[0].node() or nullid
425 439
426 diffs = web.diff(tmpl, p1, n, [path]) 440 diffs = web.diff(tmpl, p1, n, [path])
441 rename = fctx and webutil.renamelink(fctx) or []
442 ctx = fctx and fctx or ctx
427 return tmpl("filediff", 443 return tmpl("filediff",
428 file=path, 444 file=path,
429 node=hex(n), 445 node=hex(n),
430 rev=fctx.rev(), 446 rev=ctx.rev(),
431 date=fctx.date(), 447 date=ctx.date(),
432 desc=fctx.description(), 448 desc=ctx.description(),
433 author=fctx.user(), 449 author=ctx.user(),
434 rename=webutil.renamelink(fctx), 450 rename=rename,
435 branch=webutil.nodebranchnodefault(fctx), 451 branch=webutil.nodebranchnodefault(ctx),
436 parent=webutil.siblings(parents), 452 parent=webutil.siblings(parents),
437 child=webutil.siblings(fctx.children()), 453 child=webutil.siblings(ctx.children()),
438 diff=diffs) 454 diff=diffs)
439 455
440 diff = filediff 456 diff = filediff
441 457
442 def annotate(web, req, tmpl): 458 def annotate(web, req, tmpl):