##// 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:

r14046:b24e5a70 default
r14930:372d9d8b default
Show More
changelogentry.tmpl
14 lines | 553 B | application/x-cheetah | CheetahLexer
<div>
<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|date}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
</div>
<div class="title_text">
<div class="log_link">
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/>
</div>
<i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/>
</div>
<div class="log_body">
{desc|strip|escape|addbreaks|nonempty}
<br/>
<br/>
</div>