##// END OF EJS Templates
localrepo: don't refresh filecache entries that aren't in __dict__...
localrepo: don't refresh filecache entries that aren't in __dict__ We call invalidate to remove properties from __dict__ because they're possibly outdated and we'd like to check for a new version. Next time the property is accessed the filecache mechanism checks the current stat info with the one recorded at the last time the property was read, if they're different it recreates the property. Previously we refreshed the stat info on all properties in the filecache when the lock is released, including properties that are missing from __dict__. This is a problem because: l = repo.lock() repo.P # stat info S for P is recorded in _filecache <changes are made to repo.P indirectly, e.g. underlying file is replaced> # P's new stat info = S' l.release() # filecache refreshes, records S' as P's stat info At this point our filecache contains P with stat info S', but P's version is from S, which is outdated. The above happens during _rollback and strip. Currently we're wiping the filecache and forcing everything to reload from scratch which works but isn't the right solution.

File last commit:

r15907:51fc4325 default
r18309:cfeab932 default
Show More
map-cmdline.default
25 lines | 1.3 KiB | text/plain | TextLexer
David Soria Parra
templates: add bookmarks to command line styles
r13387 changeset = 'changeset: {rev}:{node|short}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changeset_quiet = '{rev}:{node|short}\n'
David Soria Parra
templates: add bookmarks to command line styles
r13387 changeset_verbose = 'changeset: {rev}:{node|short}\n{branches}{bookmarks}{tags}{parents}user: {author}\ndate: {date|date}\n{files}{file_copies_switch}description:\n{desc|strip}\n\n\n'
Pierre-Yves David
changeset_printer: display changeset phase on debug level...
r15907 changeset_debug = 'changeset: {rev}:{node}\n{branches}{bookmarks}{tags}phase: {phase}\n{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies_switch}{extras}description:\n{desc|strip}\n\n\n'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 start_files = 'files: '
file = ' {file}'
end_files = '\n'
start_file_mods = 'files: '
file_mod = ' {file_mod}'
end_file_mods = '\n'
start_file_adds = 'files+: '
file_add = ' {file_add}'
end_file_adds = '\n'
start_file_dels = 'files-: '
file_del = ' {file_del}'
end_file_dels = '\n'
Greg Ward
Fix default style so 'log --copies' has a start and an end.
r10776 start_file_copies = 'copies: '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 file_copy = ' {name} ({source})'
Greg Ward
Fix default style so 'log --copies' has a start and an end.
r10776 end_file_copies = '\n'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 parent = 'parent: {rev}:{node|formatnode}\n'
manifest = 'manifest: {rev}:{node}\n'
branch = 'branch: {branch}\n'
tag = 'tag: {tag}\n'
David Soria Parra
templates: add bookmarks to command line styles
r13387 bookmark = 'bookmark: {bookmark}\n'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 extra = 'extra: {key}={value|stringescape}\n'