Mercurial > public > mercurial-scm > hg-stable
diff 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 |
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py Mon Oct 20 12:41:09 2008 +0200 +++ b/mercurial/hgweb/webcommands.py Mon Oct 20 14:13:37 2008 +0200 @@ -417,24 +417,40 @@ archives=web.archivelist("tip")) def filediff(web, req, tmpl): - fctx = webutil.filectx(web.repo, req) - n = fctx.node() - path = fctx.path() - parents = fctx.parents() - p1 = parents and parents[0].node() or nullid + fctx, ctx = None, None + try: + fctx = webutil.filectx(web.repo, req) + except LookupError, inst: + ctx = webutil.changectx(web.repo, req) + path = webutil.cleanpath(web.repo, req.form['file'][0]) + if path not in ctx.files(): + raise + + if fctx is not None: + n = fctx.node() + path = fctx.path() + parents = fctx.parents() + p1 = parents and parents[0].node() or nullid + else: + n = ctx.node() + # path already defined in except clause + parents = ctx.parents() + p1 = parents and parents[0].node() or nullid diffs = web.diff(tmpl, p1, n, [path]) + rename = fctx and webutil.renamelink(fctx) or [] + ctx = fctx and fctx or ctx return tmpl("filediff", file=path, node=hex(n), - rev=fctx.rev(), - date=fctx.date(), - desc=fctx.description(), - author=fctx.user(), - rename=webutil.renamelink(fctx), - branch=webutil.nodebranchnodefault(fctx), + rev=ctx.rev(), + date=ctx.date(), + desc=ctx.description(), + author=ctx.user(), + rename=rename, + branch=webutil.nodebranchnodefault(ctx), parent=webutil.siblings(parents), - child=webutil.siblings(fctx.children()), + child=webutil.siblings(ctx.children()), diff=diffs) diff = filediff