Mercurial > hg-stable
changeset 27158:522ffc189671
webcommands: get correct parents when comparing a removed file (issue4962)
When comparing a file that was removed at the current revision, parents used to
show grandparents instead, due to how fctx was "shifted" from the current
revision to its p1. Let's not do that.
The fix is pretty much copied from webcommands.filediff().
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 28 Nov 2015 16:02:22 +0800 |
parents | 5f2e4eb08e41 |
children | 7e10b860c174 |
files | mercurial/hgweb/webcommands.py tests/test-hgweb-diffs.t |
diffstat | 2 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py Mon Nov 30 16:38:29 2015 -0800 +++ b/mercurial/hgweb/webcommands.py Sat Nov 28 16:02:22 2015 +0800 @@ -854,6 +854,7 @@ return [_('(binary file %s, hash: %s)') % (mt, hex(f.filenode()))] return f.data().splitlines() + fctx = None parent = ctx.p1() leftrev = parent.rev() leftnode = parent.node() @@ -869,10 +870,14 @@ leftlines = filelines(pfctx) else: rightlines = () - fctx = ctx.parents()[0][path] - leftlines = filelines(fctx) + pfctx = ctx.parents()[0][path] + leftlines = filelines(pfctx) comparison = webutil.compare(tmpl, context, leftlines, rightlines) + if fctx is not None: + ctx = fctx + else: + ctx = ctx return tmpl('filecomparison', file=path, node=hex(ctx.node()), @@ -884,8 +889,8 @@ author=ctx.user(), rename=rename, branch=webutil.nodebranchnodefault(ctx), - parent=webutil.parents(fctx), - child=webutil.children(fctx), + parent=webutil.parents(ctx), + child=webutil.children(ctx), tags=webutil.nodetagsdict(web.repo, ctx.node()), bookmarks=webutil.nodebookmarksdict(web.repo, ctx.node()), leftrev=leftrev,
--- a/tests/test-hgweb-diffs.t Mon Nov 30 16:38:29 2015 -0800 +++ b/tests/test-hgweb-diffs.t Sat Nov 28 16:02:22 2015 +0800 @@ -927,7 +927,7 @@ </tr> <tr> <th>parents</th> - <td><a href="/file/0cd96de13884/a">0cd96de13884</a> </td> + <td><a href="/file/d73db4d812ff/a">d73db4d812ff</a> </td> </tr> <tr> <th>children</th>