##// END OF EJS Templates
hg: always create new localrepository instance...
hg: always create new localrepository instance cachedlocalrepo.copy() didn't actually create new localrepository instances. This meant that the new thread isolation code in hgweb wasn't actually using separate localrepository instances, even though it was properly using separate cachedlocalrepo instances. Because the behavior of the API changed, the single caller in hgweb had to be refactored to always call _webifyrepo() or it may not have used the proper filter. I confirmed via print() debugging that id(repo) is in fact different on each thread. This was not the case before. For reasons I can't yet explain, this does not fix issue4756. I suspect there is shared cache somewhere that isn't thread safe.

File last commit:

r25604:0cdcbc47 default
r26240:2b1434e5 default
Show More
fileannotate.tmpl
66 lines | 3.0 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
<link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
<link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
</head>
<body>
<div id="container">
<div class="page-header">
<h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate</h1>
<form action="{url|urlescape}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|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
<li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
<li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li>
<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
<li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
</ul>
</div>
<ul class="submenu">
<li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
<li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
<li class="current">annotate</li>
<li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
<li><a href="{url|urlescape}raw-annotate/{symrev}/{file|urlescape}">raw</a></li>
</ul>
<h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
<h3 class="changeset">{file|escape}</h3>
<p class="changeset-age"><span class="age">{date|rfc822date}</span></p>
<dl class="overview">
<dt>author</dt>
<dd>{author|obfuscate}</dd>
<dt>date</dt>
<dd>{date|rfc822date}</dd>
{branch%filerevbranch}
<dt>changeset {rev}</dt>
<dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
{parent%fileannotateparent}
{child%fileannotatechild}
<dt>permissions</dt>
<dd>{permissions|permissions}</dd>
</dl>
<p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p>
<table class="annotated">
{annotate%annotateline}
</table>
{footer}