##// END OF EJS Templates
revbranchcache: populate cache incrementally...
revbranchcache: populate cache incrementally Previously the cache would populate completely the first time it was accessed. This could take over a minute on larger repos. This patch changes it to update incrementally. Only values that are read will be written, and it will only rewrite as much of the file as strictly necessary. This adds a magic value of '\0\0\0\0' to represent an empty cache entry. The probability of this matching an actual commit hash prefix is tiny, so it's ok if that's always considered a cache miss. This is also BC safe since any existing entries with '\0\0\0\0' will just be considered misses. Perf numbers: Mozilla-central: hg --time log -r 'branch(mobile)' -T. Cold Cache: 14.7s -> 15.1s (3% worse) Warm Cache: 1.6s -> 2.1s (30% worse) Mozilla-cental: hg perfbranchmap 2s -> 2.4s (20% worse) hg: hg log -r 'branch(stable) & branch(default)' Cold Cache: 3.1s -> 1.9s (40% better - because the old code missed the cache on both branch() revset iterations, so it did twice the work) Warm Cache: 0.2 -> 0.26 (30% worse) internal huge repo: hg --time log -r 'tip & branch(default)' Cold Cache: 65.4s -> 0.2s (327x better) While this change introduces minor regressions when iterating over every commit in a branch, it massively improves the cold cache time for operations which touch a single commit. I feel the better O() is worth it in this case.

File last commit:

r19429:c8490dcc default
r24376:203a078d default
Show More
map
42 lines | 1.2 KiB | text/plain | TextLexer
Matt Mackall
hgweb: avoid traceback if raw is used as default style...
r17277 default = 'shortlog'
shortlog = "'raw' is not a browsable style"
Alexander Plavin
hgweb: add changelog and search templates to raw style...
r19429 changelog = changelog.tmpl
changelogentry = logentry.tmpl
search = search.tmpl
searchentry = logentry.tmpl
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 mimetype = 'text/plain; charset={encoding}'
header = ''
footer = ''
changeset = changeset.tmpl
difflineplus = '{line}'
difflineminus = '{line}'
difflineat = '{line}'
diffline = '{line}'
changesetparent = '# Parent {node}'
changesetchild = '# Child {node}'
filenodelink = ''
Matt Mackall
templates: add filenolink to raw style (issue2332)
r11936 filenolink = ''
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 fileline = '{line}'
diffblock = '{lines}'
filediff = filediff.tmpl
fileannotate = fileannotate.tmpl
annotateline = '{author|user}@{rev}: {line}'
manifest = manifest.tmpl
direntry = 'drwxr-xr-x {basename}\n'
fileentry = '{permissions|permissions} {size} {basename}\n'
index = index.tmpl
notfound = notfound.tmpl
error = error.tmpl
indexentry = '{url}\n'
tags = '{entries%tagentry}'
tagentry = '{tag} {node}\n'
Yuya Nishihara
hgweb: add bookmarks listing to raw style with test case
r13921 bookmarks = '{entries%bookmarkentry}'
bookmarkentry = '{bookmark} {node}\n'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 branches = '{entries%branchentry}'
branchentry = '{branch} {node} {status}\n'
Paul Boddie
hgweb: make graph data suitable for template usage...
r16773 graph = graph.tmpl
graphnode = graphnode.tmpl
graphedge = graphedge.tmpl
bookmarkname = 'bookmark: {name}\n'
branchname = 'branch: {name}\n'
tagname = 'tag: {name}\n'