##// END OF EJS Templates
localrepo: decorate dirstate() with filecache...
localrepo: decorate dirstate() with filecache We refresh the stat info when releasing repo.wlock(), right after writing it. Also, invalidate the dirstate by deleting its attribute. This will force a stat by the decorator that actually checks if anything changed, rather than reading it again every time. Note that prior to this, there was a single dirstate instance created for a localrepo. It was invalidated by calling dirstate.invalidated(), clearing its internal attributes. As a consequence, the following construct is no longer safe: ds = repo.dirstate # keep a reference to the repo's dirstate wlock = repo.wlock() try: ds.setparents(...) finally: wlock.release() # dirstate should be written here Since it's possible that the dirstate was modified between lines #1 and #2, therefore changes to the old dirstate won't get written when the lock releases, because a new instance was created by the decorator.

File last commit:

r13964:616ad3f6 default
r14930:372d9d8b default
Show More
filelog.tmpl
42 lines | 1.5 KiB | application/x-cheetah | CheetahLexer
{header}
<title>{repo|escape}: File revisions</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}"/>
</head>
<body>
<div class="page_header">
<a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
</div>
<div class="page_nav">
<a href="{url}summary{sessionvars%urlparameter}">summary</a> |
<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
<a href="{url}log{sessionvars%urlparameter}">changelog</a> |
<a href="{url}graph{sessionvars%urlparameter}">graph</a> |
<a href="{url}tags{sessionvars%urlparameter}">tags</a> |
<a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
<a href="{url}branches{sessionvars%urlparameter}">branches</a> |
<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
revisions |
<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
<a href="{url}rss-log/tip/{file|urlescape}">rss</a> |
<a href="{url}help{sessionvars%urlparameter}">help</a>
<br/>
{nav%filenav}
</div>
<div class="title" >{file|urlescape}</div>
<table>
{entries%filelogentry}
</table>
<div class="page_nav">
{nav%filenav}
</div>
{footer}