Mercurial > hg
changeset 35486:4c7ae95e1c71
hgweb: link to successors of obsoleted changesets
_siblings() prepare various useful properties to use in templates. This
function usually prepares parents and children of changesets for use in hgweb
templates, but it can be used for successors too. It's needed because
item['successors'] is a _hybrid object that works well when used in regular
templates, but in hgweb templates work slightly differently and can't get hex
nodes of the successors, which are required for these links to work.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 22 Dec 2017 21:25:46 +0800 |
parents | 1721ce06100a |
children | bf556bd2f589 |
files | mercurial/hgweb/webutil.py mercurial/templates/gitweb/map mercurial/templates/monoblue/map mercurial/templates/paper/map mercurial/templates/spartan/map tests/test-obsolete.t |
diffstat | 6 files changed, 17 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/webutil.py Tue Nov 21 17:03:41 2017 +0800 +++ b/mercurial/hgweb/webutil.py Fri Dec 22 21:25:46 2017 +0800 @@ -353,7 +353,10 @@ return '%d:%d' % (fromline + 1, toline) def succsandmarkers(repo, ctx): - return templatekw.showsuccsandmarkers(repo, ctx) + for item in templatekw.showsuccsandmarkers(repo, ctx): + item['successors'] = _siblings(repo[successor] + for successor in item['successors']) + yield item def commonentry(repo, ctx): node = ctx.node()
--- a/mercurial/templates/gitweb/map Tue Nov 21 17:03:41 2017 +0800 +++ b/mercurial/templates/gitweb/map Fri Dec 22 21:25:46 2017 +0800 @@ -271,7 +271,8 @@ inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> ' bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> ' alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>' -obsfatesuccessors = '{if(successors, ' as ')}{join(successors, ', ')}' +successorlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' +obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' obsfateverb = '{obsfateverb(successors, markers)}' obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}'
--- a/mercurial/templates/monoblue/map Tue Nov 21 17:03:41 2017 +0800 +++ b/mercurial/templates/monoblue/map Fri Dec 22 21:25:46 2017 +0800 @@ -229,7 +229,8 @@ inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> ' bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> ' alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>' -obsfatesuccessors = '{if(successors, ' as ')}{join(successors, ', ')}' +successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' +obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' obsfateverb = '{obsfateverb(successors, markers)}' obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}'
--- a/mercurial/templates/paper/map Tue Nov 21 17:03:41 2017 +0800 +++ b/mercurial/templates/paper/map Fri Dec 22 21:25:46 2017 +0800 @@ -209,7 +209,8 @@ changelogbranchname = '<span class="branchname">{name|escape}</span> ' alltags = '{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}{bookmarks%changelogtag}' -obsfatesuccessors = '{if(successors, ' as ')}{join(successors, ', ')}' +successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' +obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' obsfateverb = '{obsfateverb(successors, markers)}' obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}'
--- a/mercurial/templates/spartan/map Tue Nov 21 17:03:41 2017 +0800 +++ b/mercurial/templates/spartan/map Fri Dec 22 21:25:46 2017 +0800 @@ -166,7 +166,8 @@ diffblock = '<pre class="parity{parity}">{lines}</pre>' changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' -obsfatesuccessors = '{if(successors, ' as ')}{join(successors, ', ')}' +successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' +obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' obsfateverb = '{obsfateverb(successors, markers)}' obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}'
--- a/tests/test-obsolete.t Tue Nov 21 17:03:41 2017 +0800 +++ b/tests/test-obsolete.t Fri Dec 22 21:25:46 2017 +0800 @@ -1036,15 +1036,15 @@ check an obsolete changeset that has been rewritten $ get-with-headers.py localhost:$HGPORT 'rev/cda648ca50f5?style=paper' | grep rewritten - <td>rewritten as 6:3de5eca88c00</td> + <td>rewritten as <a href="/rev/3de5eca88c00?style=paper">3de5eca88c00</a> </td> $ get-with-headers.py localhost:$HGPORT 'rev/cda648ca50f5?style=coal' | grep rewritten - <td>rewritten as 6:3de5eca88c00</td> + <td>rewritten as <a href="/rev/3de5eca88c00?style=coal">3de5eca88c00</a> </td> $ get-with-headers.py localhost:$HGPORT 'rev/cda648ca50f5?style=gitweb' | grep rewritten - <tr><td>obsolete</td><td>rewritten as 6:3de5eca88c00</td></tr> + <tr><td>obsolete</td><td>rewritten as <a class="list" href="/rev/3de5eca88c00?style=gitweb">3de5eca88c00</a> </td></tr> $ get-with-headers.py localhost:$HGPORT 'rev/cda648ca50f5?style=monoblue' | grep rewritten - <dt>obsolete</dt><dd>rewritten as 6:3de5eca88c00</dd> + <dt>obsolete</dt><dd>rewritten as <a href="/rev/3de5eca88c00?style=monoblue">3de5eca88c00</a> </dd> $ get-with-headers.py localhost:$HGPORT 'rev/cda648ca50f5?style=spartan' | grep rewritten - <td class="obsolete">rewritten as 6:3de5eca88c00</td> + <td class="obsolete">rewritten as <a href="/rev/3de5eca88c00?style=spartan">3de5eca88c00</a> </td> check changeset with instabilities