Mercurial > hg-stable
changeset 31672:e540846c67e0
hgweb: filter diff hunks when 'linerange' and 'patch' are specified in filelog
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Mon, 13 Mar 2017 15:17:20 +0100 |
parents | aaebc80c9f1d |
children | 7d0459706716 |
files | mercurial/hgweb/webcommands.py tests/test-hgweb-filelog.t |
diffstat | 2 files changed, 326 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py Mon Mar 13 15:15:49 2017 +0100 +++ b/mercurial/hgweb/webcommands.py Mon Mar 13 15:17:20 2017 +0100 @@ -993,11 +993,12 @@ if 'style' in req.form: diffstyle = req.form['style'][0] - def diff(fctx): + def diff(fctx, linerange=None): ctx = fctx.changectx() basectx = ctx.p1() path = fctx.path() - return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle) + return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle, + linerange=linerange) linerange = None if lrange is not None: @@ -1009,7 +1010,7 @@ for i, (c, lr) in enumerate(ancestors, 1): diffs = None if patch: - diffs = diff(c) + diffs = diff(c, linerange=lr) # follow renames accross filtered (not in range) revisions path = c.path() entries.append(dict(
--- a/tests/test-hgweb-filelog.t Mon Mar 13 15:15:49 2017 +0100 +++ b/tests/test-hgweb-filelog.t Mon Mar 13 15:17:20 2017 +0100 @@ -1159,6 +1159,328 @@ </body> </html> +filelog with 'linerange' and 'patch' + + $ cat c + b + c + $ cat <<EOF > c + > b + > c+ + > + > a + > a + > + > d + > e + > f + > EOF + $ hg ci -m 'make c bigger and touch its beginning' c + $ cat <<EOF > c + > b + > c+ + > + > a + > a + > + > d + > e+ + > f + > EOF + $ hg ci -m 'just touch end of c' c + $ cat <<EOF > c + > b + > c++ + > + > a + > a + > + > d + > e+ + > f + > EOF + $ hg ci -m 'touch beginning of c' c + $ cat <<EOF > c + > b- + > c++ + > + > a + > a + > + > d + > e+ + > f+ + > EOF + $ hg ci -m 'touching beginning and end of c' c + $ hg log -r 'followlines(c, 1:2, startrev=tip) and follow(c)' -p + changeset: 0:6563da9dcf87 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: b + + diff -r 000000000000 -r 6563da9dcf87 b + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/b Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +b + + changeset: 7:46c1a66bd8fc + branch: a-branch + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: change c + + diff -r c9637d3cc8ef -r 46c1a66bd8fc c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,2 @@ + b + +c + + changeset: 8:c40702dbfc57 + branch: a-branch + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: make c bigger and touch its beginning + + diff -r 46c1a66bd8fc -r c40702dbfc57 c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,2 +1,9 @@ + b + -c + +c+ + + + +a + +a + + + +d + +e + +f + + changeset: 10:f94018eca295 + branch: a-branch + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: touch beginning of c + + diff -r 07faa31d6d1c -r f94018eca295 c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,5 +1,5 @@ + b + -c+ + +c++ + + a + a + + changeset: 11:ea4193bdd9bf + branch: a-branch + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: touching beginning and end of c + + diff -r f94018eca295 -r ea4193bdd9bf c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,4 +1,4 @@ + -b + +b- + c++ + + a + @@ -6,4 +6,4 @@ + + d + e+ + -f + +f+ + + $ (get-with-headers.py localhost:$HGPORT 'log/tip/c?linerange=1:2&patch=') + 200 Script output follows + + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> + <head> + <link rel="icon" href="/static/hgicon.png" type="image/png" /> + <meta name="robots" content="index, nofollow" /> + <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> + <script type="text/javascript" src="/static/mercurial.js"></script> + + <title>test: c history</title> + <link rel="alternate" type="application/atom+xml" + href="/atom-log/tip/c" title="Atom feed for test:c" /> + <link rel="alternate" type="application/rss+xml" + href="/rss-log/tip/c" title="RSS feed for test:c" /> + </head> + <body> + + <div class="container"> + <div class="menu"> + <div class="logo"> + <a href="https://mercurial-scm.org/"> + <img src="/static/hglogo.png" alt="mercurial" /></a> + </div> + <ul> + <li><a href="/shortlog/tip">log</a></li> + <li><a href="/graph/tip">graph</a></li> + <li><a href="/tags">tags</a></li> + <li><a href="/bookmarks">bookmarks</a></li> + <li><a href="/branches">branches</a></li> + </ul> + <ul> + <li><a href="/rev/tip">changeset</a></li> + <li><a href="/file/tip">browse</a></li> + </ul> + <ul> + <li><a href="/file/tip/c">file</a></li> + <li><a href="/diff/tip/c">diff</a></li> + <li><a href="/comparison/tip/c">comparison</a></li> + <li><a href="/annotate/tip/c">annotate</a></li> + <li class="active">file log</li> + <li><a href="/raw-file/tip/c">raw</a></li> + </ul> + <ul> + <li><a href="/help">help</a></li> + </ul> + <div class="atom-logo"> + <a href="/atom-log/tip/c" title="subscribe to atom feed"> + <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed" /> + </a> + </div> + </div> + + <div class="main"> + <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> + <h3> + log c @ 11:<a href="/rev/ea4193bdd9bf">ea4193bdd9bf</a> + <span class="branchname">a-branch</span> <span class="tag">tip</span> + (following lines 1:2 <a href="/log/tip/c">back to filelog</a>) + </h3> + + <form class="search" action="/log"> + + <p><input name="rev" id="search1" type="text" size="30" /></p> + <div id="hint">Find changesets by keywords (author, files, the commit message), revision + number or hash, or <a href="/help/revsets">revset expression</a>.</div> + </form> + + <div class="navigate"> + <a href="/log/tip/c?linerange=1%3A2&patch=&revcount=30">less</a> + <a href="/log/tip/c?linerange=1%3A2&patch=&revcount=120">more</a> + | </div> + + <table class="bigtable"> + <thead> + <tr> + <th class="age">age</th> + <th class="author">author</th> + <th class="description">description</th> + </tr> + </thead> + <tbody class="stripes2"> + <tr> + <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td> + <td class="author">test</td> + <td class="description"> + <a href="/rev/ea4193bdd9bf">touching beginning and end of c</a> + <span class="branchhead">a-branch</span> <span class="tag">tip</span> + </td> + </tr> + <tr><td colspan="3"><div class="bottomline inc-lineno"><pre class="sourcelines wrap"> + <span id="l1.1" class="minusline">--- a/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.1"></a> + <span id="l1.2" class="plusline">+++ b/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.2"></a> + <span id="l1.3" class="atline">@@ -1,4 +1,4 @@</span><a href="#l1.3"></a> + <span id="l1.4" class="minusline">-b</span><a href="#l1.4"></a> + <span id="l1.5" class="plusline">+b-</span><a href="#l1.5"></a> + <span id="l1.6"> c++</span><a href="#l1.6"></a> + <span id="l1.7"> </span><a href="#l1.7"></a> + <span id="l1.8"> a</span><a href="#l1.8"></a></pre></div></td></tr> + <tr> + <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td> + <td class="author">test</td> + <td class="description"> + <a href="/rev/f94018eca295">touch beginning of c</a> + <span class="branchname">a-branch</span> + </td> + </tr> + <tr><td colspan="3"><div class="bottomline inc-lineno"><pre class="sourcelines wrap"> + <span id="l1.1" class="minusline">--- a/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.1"></a> + <span id="l1.2" class="plusline">+++ b/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.2"></a> + <span id="l1.3" class="atline">@@ -1,5 +1,5 @@</span><a href="#l1.3"></a> + <span id="l1.4"> b</span><a href="#l1.4"></a> + <span id="l1.5" class="minusline">-c+</span><a href="#l1.5"></a> + <span id="l1.6" class="plusline">+c++</span><a href="#l1.6"></a> + <span id="l1.7"> </span><a href="#l1.7"></a> + <span id="l1.8"> a</span><a href="#l1.8"></a> + <span id="l1.9"> a</span><a href="#l1.9"></a></pre></div></td></tr> + <tr> + <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td> + <td class="author">test</td> + <td class="description"> + <a href="/rev/c40702dbfc57">make c bigger and touch its beginning</a> + <span class="branchname">a-branch</span> + </td> + </tr> + <tr><td colspan="3"><div class="bottomline inc-lineno"><pre class="sourcelines wrap"> + <span id="l1.1" class="minusline">--- a/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.1"></a> + <span id="l1.2" class="plusline">+++ b/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.2"></a> + <span id="l1.3" class="atline">@@ -1,2 +1,9 @@</span><a href="#l1.3"></a> + <span id="l1.4"> b</span><a href="#l1.4"></a> + <span id="l1.5" class="minusline">-c</span><a href="#l1.5"></a> + <span id="l1.6" class="plusline">+c+</span><a href="#l1.6"></a> + <span id="l1.7" class="plusline">+</span><a href="#l1.7"></a> + <span id="l1.8" class="plusline">+a</span><a href="#l1.8"></a> + <span id="l1.9" class="plusline">+a</span><a href="#l1.9"></a> + <span id="l1.10" class="plusline">+</span><a href="#l1.10"></a> + <span id="l1.11" class="plusline">+d</span><a href="#l1.11"></a> + <span id="l1.12" class="plusline">+e</span><a href="#l1.12"></a> + <span id="l1.13" class="plusline">+f</span><a href="#l1.13"></a></pre></div></td></tr> + <tr> + <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td> + <td class="author">test</td> + <td class="description"> + <a href="/rev/46c1a66bd8fc">change c</a> + <span class="branchname">a-branch</span> + </td> + </tr> + <tr><td colspan="3"><div class="bottomline inc-lineno"><pre class="sourcelines wrap"> + <span id="l1.1" class="minusline">--- a/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.1"></a> + <span id="l1.2" class="plusline">+++ b/c Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.2"></a> + <span id="l1.3" class="atline">@@ -1,1 +1,2 @@</span><a href="#l1.3"></a> + <span id="l1.4"> b</span><a href="#l1.4"></a> + <span id="l1.5" class="plusline">+c</span><a href="#l1.5"></a></pre></div></td></tr> + <tr> + <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td> + <td class="author">test</td> + <td class="description"> + <a href="/rev/6563da9dcf87">b</a> + + </td> + </tr> + <tr><td colspan="3"><div class="bottomline inc-lineno"><pre class="sourcelines wrap"> + <span id="l1.1" class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.1"></a> + <span id="l1.2" class="plusline">+++ b/b Thu Jan 01 00:00:00 1970 +0000</span><a href="#l1.2"></a></pre></div></td></tr> + + </tbody> + </table> + + <div class="navigate"> + <a href="/log/tip/c?linerange=1%3A2&patch=&revcount=30">less</a> + <a href="/log/tip/c?linerange=1%3A2&patch=&revcount=120">more</a> + | + </div> + + </div> + </div> + + + + </body> + </html> + rss log