--- a/mercurial/hgweb/webcommands.py Fri Jul 06 13:56:40 2012 -0700
+++ b/mercurial/hgweb/webcommands.py Sun Jul 08 17:17:02 2012 +0200
@@ -22,7 +22,7 @@
__all__ = [
'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
'manifest', 'tags', 'bookmarks', 'branches', 'summary', 'filediff', 'diff',
- 'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
+ 'comparison', 'annotate', 'filelog', 'archive', 'static', 'graph', 'help',
]
def log(web, req, tmpl):
@@ -586,6 +586,31 @@
diff = filediff
+def comparison(web, req, tmpl):
+ ctx = webutil.changectx(web.repo, req)
+ path = webutil.cleanpath(web.repo, req.form['file'][0])
+ rename = path in ctx and webutil.renamelink(ctx[path]) or []
+
+ parsecontext = lambda v: v == 'full' and -1 or int(v)
+ if 'context' in req.form:
+ context = parsecontext(req.form['context'][0])
+ else:
+ context = parsecontext(web.config('web', 'comparisoncontext', '5'))
+
+ comparison = webutil.compare(tmpl, ctx, path, context)
+ return tmpl('filecomparison',
+ file=path,
+ node=hex(ctx.node()),
+ rev=ctx.rev(),
+ date=ctx.date(),
+ desc=ctx.description(),
+ author=ctx.user(),
+ rename=rename,
+ branch=webutil.nodebranchnodefault(ctx),
+ parent=webutil.parents(ctx),
+ child=webutil.children(ctx),
+ comparison=comparison)
+
def annotate(web, req, tmpl):
fctx = webutil.filectx(web.repo, req)
f = fctx.path()