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 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}' updirentry = ' drwxr-xr-x      [up] ' 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 = '
{linenumber} {line|escape}
' 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} ')}
{node|short} {desc|escape|firstline}
{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} '