##// END OF EJS Templates
hgweb: compute changeset parents and children for log pages lazily...
hgweb: compute changeset parents and children for log pages lazily Log pages, i.e. changelog, filelog and search results page computed children and parents for each changeset shown, because spartan hgweb style shows this info. Turns out, computing all this is heavy and also unnecessary for log pages in all other hgweb styles. Luckily, templates allow an easy way to do computations on demand: just pass the heavy part of code as a callable and it will be only called when needed. Here are some benchmarks on the mercurial repository (best of 3): time wget http://127.0.0.1:8021/ before: 0m0.050s after: 0m0.040s time wget http://127.0.0.1:8021/?revcount=960 before: 0m1.164s after: 0m0.389s time wget http://127.0.0.1:8021/log/tip/mercurial/commands.py before: 0m0.047s after: 0m0.042s time wget http://127.0.0.1:8021/log/tip/mercurial/commands.py?revcount=960 before: 0m0.830s after: 0m0.434s

File last commit:

r2591:61f2008c default
r26894:41957e50 default
Show More
HGAnnotate.vim
27 lines | 859 B | text/x-vim | VimLexer
" $Id: CVSAnnotate.vim,v 1.5 2002/10/01 21:34:02 rhiestan Exp $
" Vim syntax file
" Language: CVS annotate output
" Maintainer: Bob Hiestand <bob@hiestandfamily.org>
" Last Change: $Date: 2002/10/01 21:34:02 $
" Remark: Used by the cvscommand plugin. Originally written by Mathieu
" Clabaut
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn match cvsDate /\S\S\S \S\+ \d\+ \d\+:\d\+:\d\+ \d\+ [+-]\?\d\+/ contained
syn match cvsName /^\s*\S\+ / contained nextgroup=cvsVer
syn match cvsVer /\d\+ / contained nextgroup=cvsDate
syn region cvsHead start="^" end=":" contains=cvsVer,cvsName,cvsDate
if !exists("did_cvsannotate_syntax_inits")
let did_cvsannotate_syntax_inits = 1
hi link cvsText String
hi link cvsDate Comment
hi link cvsName Type
hi link cvsVer Statement
endif
let b:current_syntax="CVSAnnotate"