Mercurial > hg
view mercurial/templates/json/map @ 44712:a825bfbf6642
templatekw: cache mergestate even if merge is not ongoing
While playing with eBPF, I noticed .hg/merge/state{,2} files were tried
to open() for each revision. That's not healthy. Let's cache the "inactive"
state as well.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 15 Apr 2020 23:11:55 +0900 |
parents | d155bf11cf22 |
children | c0fbd63d66a7 |
line wrap: on
line source
default = 'shortlog' mimetype = 'application/json' filerevision = '\{ "node": {node|json}, "path": {file|json}, "date": {date|json}, "desc": {desc|utf8|json}, "branch": {if(branch, branch%changesetbranch, "default"|json)}, "bookmarks": [{join(bookmarks%changelistentryname, ", ")}], "tags": [{join(tags%changelistentryname, ", ")}], "user": {author|utf8|json}, "parents": [{join(parent%changesetparent, ", ")}], "phase": {phase|json}, "lines": [{join(text%lineentry, ", ")}] }' lineentry = '\{ "line": {line|json} }' search = '\{ "node": {node|json}, "query": {query|json}, "entries": [{join(entries%changelistentry, ", ")}] }' # changelog and shortlog are the same web API but with different # number of entries. changelog = changelist.tmpl shortlog = changelist.tmpl graph = graph.tmpl changelistentry = '\{ "node": {node|json}, "date": {date|json}, "desc": {desc|utf8|json}, "branch": {if(branch, branch%changesetbranch, "default"|json)}, "bookmarks": [{join(bookmarks%changelistentryname, ", ")}], "tags": [{join(tags%changelistentryname, ", ")}], "user": {author|utf8|json}, "phase": {phase|json}, "parents": [{if(allparents, join(allparents%changesetparent, ", "), join(parent%changesetparent, ", "))}] }' graphentry = '\{ "node": {node|json}, "date": {date|json}, "desc": {desc|utf8|json}, "branch": {if(branch, branch%changesetbranch, "default"|json)}, "bookmarks": [{join(bookmarks%changelistentryname, ", ")}], "tags": [{join(tags%changelistentryname, ", ")}], "user": {author|utf8|json}, "phase": {phase|json}, "col": {col|json}, "row": {row|json}, "color": {color|json}, "edges": {edges|json}, "parents": [{if(allparents, join(allparents%changesetparent, ", "), join(parent%changesetparent, ", "))}] }' changelistentryname = '{name|utf8|json}' changeset = '\{ "node": {node|json}, "date": {date|json}, "desc": {desc|utf8|json}, "branch": {if(branch, branch%changesetbranch, "default"|json)}, "bookmarks": [{join(changesetbookmark, ", ")}], "tags": [{join(changesettag, ", ")}], "user": {author|utf8|json}, "parents": [{join(parent%changesetparent, ", ")}], "files": [{join(files, ", ")}], "diff": [{join(diff, ", ")}], "phase": {phase|json} }' changesetbranch = '{name|utf8|json}' changesetbookmark = '{bookmark|utf8|json}' changesettag = '{tag|utf8|json}' changesetparent = '{node|json}' manifest = '\{ "node": {node|json}, "abspath": {path|json}, "directories": [{join(dentries%direntry, ", ")}], "files": [{join(fentries%fileentry, ", ")}], "bookmarks": [{join(bookmarks%name, ", ")}], "tags": [{join(tags%name, ", ")}] }' name = '{name|utf8|json}' direntry = '\{ "abspath": {path|json}, "basename": {basename|json}, "emptydirs": {emptydirs|json} }' fileentry = '\{ "abspath": {file|json}, "basename": {basename|json}, "date": {date|json}, "size": {size|json}, "flags": {permissions|json} }' tags = '\{ "node": {node|json}, "tags": [{join(entriesnotip%tagentry, ", ")}] }' tagentry = '\{ "tag": {tag|utf8|json}, "node": {node|json}, "date": {date|json} }' bookmarks = '\{ "node": {node|json}, "bookmarks": [{join(entries%bookmarkentry, ", ")}] }' bookmarkentry = '\{ "bookmark": {bookmark|utf8|json}, "node": {node|json}, "date": {date|json} }' branches = '\{ "branches": [{join(entries%branchentry, ", ")}] }' branchentry = '\{ "branch": {branch|utf8|json}, "node": {node|json}, "date": {date|json}, "status": {status|json} }' shortlogentry = '{changelistentry}' summary = '\{ "node": {node|json}, "lastchange": {lastchange|json}, "bookmarks": [{join(bookmarks%bookmarkentry, ", ")}], "branches": [{join(branches%branchentry, ", ")}], "shortlog": [{join(shortlog%shortlogentry, ", ")}], "tags": [{join(tags%tagentry, ", ")}], "archives": [{join(archives%archiveentry, ", ")}], "labels": {labels|json} }' archiveentry = '\{ "node": {node|json}, "extension": {extension|json}, "type": {type|json}, "url": {"{urlbase}{url}archive/{node}{extension}"|json} }' filediff = '\{ "path": {file|json}, "node": {node|json}, "date": {date|json}, "desc": {desc|utf8|json}, "author": {author|utf8|json}, "parents": [{join(parent%changesetparent, ", ")}], "children": [{join(child%changesetparent, ", ")}], "diff": [{join(diff, ", ")}] }' diffblock = '\{ "blockno": {blockno|json}, "lines": [{join(lines, ", ")}] }' difflineplus = '\{ "t": "+", "n": {lineno|json}, "l": {line|json} }' difflineminus = '\{ "t": "-", "n": {lineno|json}, "l": {line|json} }' difflineat = '\{ "t": "@", "n": {lineno|json}, "l": {line|json} }' diffline = '\{ "t": "", "n": {lineno|json}, "l": {line|json} }' filecomparison = '\{ "path": {file|json}, "node": {node|json}, "date": {date|json}, "desc": {desc|utf8|json}, "author": {author|utf8|json}, "parents": [{join(parent%changesetparent, ", ")}], "children": [{join(child%changesetparent, ", ")}], "leftnode": {leftnode|json}, "rightnode": {rightnode|json}, "comparison": [{join(comparison, ", ")}] }' comparisonblock = '\{ "lines": [{join(lines, ", ")}] }' comparisonline = '\{ "t": {type|json}, "ln": {leftlineno|json}, "ll": {leftline|json}, "rn": {rightlineno|json}, "rl": {rightline|json} }' fileannotate = '\{ "abspath": {file|json}, "node": {node|json}, "author": {author|utf8|json}, "date": {date|json}, "desc": {desc|utf8|json}, "parents": [{join(parent%changesetparent, ", ")}], "children": [{join(child%changesetparent, ", ")}], "permissions": {permissions|json}, "annotate": [{join(annotate%fileannotation, ", ")}] }' fileannotation = '\{ "node": {node|json}, "author": {author|utf8|json}, "desc": {desc|utf8|json}, "abspath": {file|json}, "targetline": {targetline|json}, "line": {line|json}, "lineno": {lineno|json}, "revdate": {revdate|json} }' filelog = '\{ "entries": [{join(entries%changelistentry, ", ")}] }' helptopics = '\{ "topics": [{join(topics%helptopicentry, ", ")}], "earlycommands": [{join(earlycommands%helptopicentry, ", ")}], "othercommands": [{join(othercommands%helptopicentry, ", ")}] }' helptopicentry = '\{ "topic": {topic|utf8|json}, "summary": {summary|utf8|json} }' help = '\{ "topic": {topic|utf8|json}, "rawdoc": {doc|utf8|json} }' filenodelink = '\{ "file": {file|json}, "status": {status|json} }' filenolink = '{filenodelink}' index = '\{ "entries": [{join(entries%indexentry, ", ")}] }' indexentry = '\{ "name": {name|utf8|json}, "description": {description|utf8|json}, "contact": {contact|utf8|json}, "lastchange": {lastchange|json}, "labels": {labels|json} }' error = '\{ "error": {error|utf8|json} }'