Mercurial > hg
view mercurial/templates/spartan/graph.tmpl @ 35034:02845f7441af stable
dispatch: verify result of early command parsing
Before, early options were stripped from args, and because of this, some
kind of parsing errors weren't reported. For example,
$ hg ci -m -Ra file
would execute "hg ci -m file" in repository "a".
This patch fixes the issue by parsing early options again by real getopt-based
parser, and verifying the results. If the early parsing appears wrong, hg just
aborts. The current error message seems not nice, and should be improved, maybe
in V2 or follow-up.
Note that this isn't a security feature because we can still do anything by
using shell aliases.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 11 Nov 2017 12:40:13 +0900 |
parents | d7bf7d2bd5ab |
children | 69a865dc2ada |
line wrap: on
line source
{header} <title>{repo|escape}: graph</title> <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags"> <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags"> <!--[if IE]><script type="text/javascript" src="{staticurl|urlescape}excanvas.js"></script><![endif]--> </head> <body> <div class="buttons"> <a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> <a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> <a href="{url|urlescape}file/{symrev}/{sessionvars%urlparameter}">files</a> <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a> </div> <h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / graph</h2> <form action="{url|urlescape}log"> {sessionvars%hiddenformentry} <p> <label for="search1">search:</label> <input name="rev" id="search1" type="text" size="30"> navigate: <small class="navigate">{changenav%navgraph}</small> </p> </form> <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> <div id="wrapper"> <ul id="nodebgs"></ul> <canvas id="graph" width="{canvaswidth}" height="{canvasheight}"></canvas> <ul id="graphnodes"></ul> </div> <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}> <!-- hide script content var data = {jsdata|json}; var graph = new Graph(); graph.scale({bg_height}); graph.vertex = function(x, y, color, parity, cur) \{ this.ctx.beginPath(); color = this.setColor(color, 0.25, 0.75); this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); this.ctx.fill(); var bg = '<li class="bg parity' + parity + '"></li>'; var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size; var nstyle = 'padding-left: ' + left + 'px;'; var item = '<li style="' + nstyle + '"><span class="desc">'; item += '<a href="{url|urlescape}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>'; item += '</span><span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>'; return [bg, item]; } graph.render(data); // stop hiding script --> </script> <form action="{url|urlescape}log"> {sessionvars%hiddenformentry} <p> <label for="search1">search:</label> <input name="rev" id="search1" type="text" size="30"> navigate: <small class="navigate">{changenav%navgraph}</small> </p> </form> {footer}