##// END OF EJS Templates
streamclone: force @filecache properties to be reloaded from file...
streamclone: force @filecache properties to be reloaded from file Before this patch, consumev1() invokes repo.invalidate() after closing transaction, to force @filecache properties to be reloaded from files at next access, because streamclone writes data into files directly. But this doesn't work as expected in the case below: 1. at closing transaction, repo._refreshfilecachestats() refreshes file stat of each @filecache properties with streamclone-ed files This means that in-memory properties are treated as valid. 2. but streamclone doesn't changes in-memory properties This means that in-memory properties are actually invalid. 3. repo.invalidate() just forces to examine file stat of @filecache properties at the first access after it Such examination should concludes that reloading from file isn't needed, because file stat was already refreshed at (1). Therefore, invalid in-memory cached properties (2) are unintentionally treated as valid (1). This patch invokes repo.invalidate() with clearfilecache=True, to force @filecache properties to be reloaded from file at next access. BTW, it is accidental that repo.invalidate() without clearfilecache=True in streamclone case seems to work as expected before this patch. If transaction is started via "filtered repo" object, repo._refreshfilecachestats() tries to refresh file stat of each @filecache properties on "filtered repo" object, even though all of them are stored into "unfiltered repo" object. In this case, repo._refreshfilecachestats() does nothing unintentionally, but this unexpected behavior causes reloading @filecache properties after repo.invalidate(). This is reason why this patch should be applied before making _refreshfilecachestats() correctly refresh file stat of @filecache properties.
FUJIWARA Katsunori -
r29917:f32f8bf5 default
Show More
Name Size Modified Last Commit Author
/ mercurial / templates / spartan
branches.tmpl Loading ...
changelog.tmpl Loading ...
changelogentry.tmpl Loading ...
changeset.tmpl Loading ...
error.tmpl Loading ...
fileannotate.tmpl Loading ...
filediff.tmpl Loading ...
filelog.tmpl Loading ...
filelogentry.tmpl Loading ...
filerevision.tmpl Loading ...
footer.tmpl Loading ...
graph.tmpl Loading ...
header.tmpl Loading ...
index.tmpl Loading ...
manifest.tmpl Loading ...
map Loading ...
notfound.tmpl Loading ...
search.tmpl Loading ...
shortlog.tmpl Loading ...
shortlogentry.tmpl Loading ...
tags.tmpl Loading ...