default = 'shortlog'
mimetype = 'text/html; charset={encoding}'
header = header.tmpl
footer = footer.tmpl
search = search.tmpl
changelog = changelog.tmpl
shortlog = shortlog.tmpl
shortlogentry = shortlogentry.tmpl
graph = graph.tmpl
graphentry = graphentry.tmpl
naventry = '{label|escape} '
navshortentry = '{label|escape} '
navgraphentry = '{label|escape} '
filenaventry = '{label|escape} '
filedifflink = '{file|escape} '
filenodelink = '{file|escape} '
filenolink = '{file|escape} '
fileellipses = '...'
changelogentry = changelogentry.tmpl
searchentry = changelogentry.tmpl
changeset = changeset.tmpl
manifest = manifest.tmpl
nav = '{before%naventry} {after%naventry}'
navshort = '{before%navshortentry}{after%navshortentry}'
navgraph = '{before%navgraphentry}{after%navgraphentry}'
filenav = '{before%filenaventry}{after%filenaventry}'
direntry = '
drwxr-xr-x
{basename|escape}/
{emptydirs|urlescape}
'
fileentry = '
{permissions|permissions}
{date|isodate}
{size}
{basename|escape} '
filerevision = filerevision.tmpl
fileannotate = fileannotate.tmpl
filediff = filediff.tmpl
filelog = filelog.tmpl
fileline = ''
filelogentry = filelogentry.tmpl
# The ensures that all table cells have content (even if there
# is an empty line in the annotated file), which in turn ensures that
# all table rows have equal height.
annotateline = '
{if(blockhead,
'
{rev}
')}
{author|obfuscate}
parents: {parents%annotateparent}
diff
changeset
{linenumber}
{line|escape}
'
annotateparent = '
{rev} '
difflineplus = '{linenumber} {line|escape} '
difflineminus = '{linenumber} {line|escape} '
difflineat = '{linenumber} {line|escape} '
diffline = '{linenumber} {line|escape}'
changesetlink = '{node|short} '
changelogparent = '
parent {rev}:
{changesetlink}
'
changesetparent = '
parent {rev}:
{changesetlink}
'
changesetparentdiff = '
parent {rev}:
{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
'
difffrom = 'diff '
filerevparent = '
parent:
{rename%filerename}{node|short}
'
filerename = '{file|escape}@'
filelogrename = '
base:
{file|escape}@{node|short}
'
fileannotateparent = '
parent:
{rename%filerename}{node|short}
'
changesetchild = '
child {rev}:
{node|short}
'
changelogchild = '
child {rev}:
{node|short}
'
filerevchild = '
child:
{node|short}
'
fileannotatechild = '
child:
{node|short}
'
tags = tags.tmpl
tagentry = '
{node}
{tag|escape}
'
branches = branches.tmpl
branchentry = '
{node}
{branch|escape}
'
diffblock = '{lines} '
changelogtag = 'tag: {tag|escape} '
changesettag = 'tag: {tag|escape} '
successorlink = '{node|short} '
obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
obsfateverb = '{obsfateverb(successors, markers)}'
obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '{min(obsfatedate(markers))|rfc822date} ', 'between {min(obsfatedate(markers))|rfc822date} and {max(obsfatedate(markers))|rfc822date} ')}')}'
obsfateentry = '
obsolete:
{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}
'
instabilitychangesetlink = '{node|short} '
divergentnode = '{instabilitychangesetlink} ({phase})'
whyunstableentry = '
unstable:
{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}
'
filediffparent = '
parent {rev}:
{node|short}
'
filediffchild = '
child {rev}:
{node|short}
'
indexentry = '
{name|escape}
{description}
{contact|obfuscate}
{lastchange|rfc822date}
RSS
Atom
{archives%archiveentry}
'
index = index.tmpl
archiveentry = '{type|escape} '
notfound = notfound.tmpl
error = error.tmpl
urlparameter = '{separator}{name}={value|urlescape}'
hiddenformentry = ' '
breadcrumb = '> {name|escape} '