##// END OF EJS Templates
Fix memory leak when using hg commands over http repositories...
Fix memory leak when using hg commands over http repositories When using hg commands over an http repository in a long running process, a httphandler instance is leaked for each command, because of a loop handler.parent -> OpenerDirector and OpenerDirector.handlers -> handler which is not handled by Python's gc. Discussion on #mercurial concluded that removing the __del__ method solved the problem.

File last commit:

r10856:b07bd417 default
r12391:ca5fd84d stable
Show More
graph.tmpl
118 lines | 4.2 KiB | application/x-cheetah | CheetahLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {header}
<title>{repo|escape}: graph</title>
<link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
<link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
</head>
<body>
<div id="container">
<div class="page-header">
<h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
<form action="{url}log">
{sessionvars%hiddenformentry}
<dl class="search">
<dt><label>Search: </label></dt>
<dd><input type="text" name="rev" /></dd>
</dl>
</form>
<ul class="page-nav">
<li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
<li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
<li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
<li class="current">graph</li>
<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
<li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
</ul>
</div>
<h2 class="no-link no-border">graph</h2>
<div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
<div id="wrapper">
<ul id="nodebgs"></ul>
<canvas id="graph" width="224" height="{canvasheight}"></canvas>
<ul id="graphnodes"></ul>
</div>
<script type="text/javascript" src="{staticurl}graph.js"></script>
<script>
<!-- hide script content
document.getElementById('noscript').style.display = 'none';
var data = {jsdata|json};
var graph = new Graph();
graph.scale({bg_height});
Matt Mackall
templates: escape javascript braces
r10856 graph.edge = function(x0, y0, x1, y1, color) \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
this.setColor(color, 0.0, 0.65);
this.ctx.beginPath();
this.ctx.moveTo(x0, y0);
this.ctx.lineTo(x1, y1);
this.ctx.stroke();
}
var revlink = '<li style="_STYLE"><span class="desc">';
revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>';
Martin Geisler
Merge with stable
r10278 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
Matt Mackall
templates: escape javascript braces
r10856 graph.vertex = function(x, y, color, parity, cur) \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
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.columns + 1) * this.bg_height;
var nstyle = 'padding-left: ' + left + 'px;';
var item = revlink.replace(/_STYLE/, nstyle);
item = item.replace(/_PARITY/, 'parity' + parity);
item = item.replace(/_NODEID/, cur[0]);
item = item.replace(/_NODEID/, cur[0]);
Thomas Arendsen Hein
trailing spaces (and one stray tab)
r10575 item = item.replace(/_DESC/, cur[3]);
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 item = item.replace(/_USER/, cur[4]);
item = item.replace(/_DATE/, cur[5]);
var tagspan = '';
Matt Mackall
templates: escape javascript braces
r10856 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 tagspan = '<span class="logtags">';
Matt Mackall
templates: escape javascript braces
r10856 if (cur[6][1]) \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
tagspan += cur[6][0] + '</span> ';
Matt Mackall
templates: escape javascript braces
r10856 } else if (!cur[6][1] && cur[6][0] != 'default') \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
tagspan += cur[6][0] + '</span> ';
}
Matt Mackall
templates: escape javascript braces
r10856 if (cur[7].length) \{
for (var t in cur[7]) \{
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 var tag = cur[7][t];
tagspan += '<span class="tagtag">' + tag + '</span> ';
}
}
tagspan += '</span>';
}
Thomas Arendsen Hein
trailing spaces (and one stray tab)
r10575 item = item.replace(/_TAGS/, tagspan);
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 return [bg, item];
}
graph.render(data);
// stop hiding script -->
</script>
<div class="page-path">
<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
<a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
Nicolas Dumazet
hgweb: changenav: separate pages before and after the current position...
r10254 | {changenav%navgraph}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
{footer}