##// END OF EJS Templates
revlog: change generaldelta delta parent heuristic...
revlog: change generaldelta delta parent heuristic The old generaldelta heuristic was "if p1 (or p2) was closer than the last full text, use it, otherwise use prev". This was problematic when a repo contained multiple branches that were very different. If commits to branch A were pushed, and the last full text was branch B, it would generate a fulltext. Then if branch B was pushed, it would generate another fulltext. The problem is that the last fulltext (and delta'ing against `prev` in general) has no correlation with the contents of the incoming revision, and therefore will always have degenerate cases. According to the blame, that algorithm was chosen to minimize the chain length. Since there is already code that protects against that (the delta-vs-fulltext code), and since it has been improved since the original generaldelta algorithm went in (2011), I believe the chain length criteria will still be preserved. The new algorithm always diffs against p1 (or p2 if it's closer), unless the resulting delta will fail the delta-vs-fulltext check, in which case we delta against prev. Some before and after stats on manifest.d size. internal large repo old heuristic - 2.0 GB new heuristic - 1.2 GB mozilla-central old heuristic - 242 MB new heuristic - 261 MB The regression in mozilla central is due to the new heuristic choosing p2r as the delta when it's closer to the tip. Switching the algorithm to always prefer p1r brings the size back down (242 MB). This is result of the way in which mozilla does merges and pushes, and the result could easily swing the other direction in other repos (depending on if they merge X into Y or Y into X), but will never be as degenerate as before. I future patch will address the regression by introducing an optional, even more aggressive delta heuristic which will knock the mozilla manifest size down dramatically.

File last commit:

r25779:cd842821 default
r26117:4dc5b51f default
Show More
map
248 lines | 8.8 KiB | text/plain | TextLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 default = 'shortlog'
mimetype = 'text/html; charset={encoding}'
header = header.tmpl
footer = ../paper/footer.tmpl
search = ../paper/search.tmpl
changelog = ../paper/shortlog.tmpl
shortlog = ../paper/shortlog.tmpl
shortlogentry = ../paper/shortlogentry.tmpl
graph = ../paper/graph.tmpl
Augie Fackler
web: add a help view for getting hg help output
r12666 help = ../paper/help.tmpl
helptopics = ../paper/helptopics.tmpl
Dan Villiom Podlaski Christiansen
hgweb help: split up long lines (in generated output)
r18745 helpentry = '
<tr><td>
<a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
{topic|escape}
</a>
</td><td>
{summary|escape}
</td></tr>'
Augie Fackler
web: add a help view for getting hg help output
r12666
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filenolink = '{file|escape} '
fileellipses = '...'
Steven Brown
paper, coal: define the diffstat templates...
r14563 diffstatlink = ../paper/diffstat.tmpl
diffstatnolink = ../paper/diffstat.tmpl
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogentry = ../paper/shortlogentry.tmpl
searchentry = ../paper/shortlogentry.tmpl
changeset = ../paper/changeset.tmpl
manifest = ../paper/manifest.tmpl
Nicolas Dumazet
hgweb: changenav: separate pages before and after the current position...
r10254 nav = '{before%naventry} {after%naventry}'
navshort = '{before%navshortentry}{after%navshortentry}'
navgraph = '{before%navgraphentry}{after%navgraphentry}'
filenav = '{before%filenaventry}{after%filenaventry}'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 direntry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="fileline">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="name">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </a>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {emptydirs|escape}
</a>
</td>
<td class="size"></td>
<td class="permissions">drwxr-xr-x</td>
</tr>'
fileentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="fileline">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="filename">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </a>
</td>
<td class="size">{size}</td>
<td class="permissions">{permissions|permissions}</td>
</tr>'
filerevision = ../paper/filerevision.tmpl
fileannotate = ../paper/fileannotate.tmpl
filediff = ../paper/filediff.tmpl
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 filecomparison = ../paper/filecomparison.tmpl
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filelog = ../paper/filelog.tmpl
fileline = '
av6
hgweb: use css for stripey background in coal...
r25664 <div class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filelogentry = ../paper/filelogentry.tmpl
annotateline = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="annotate">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
</td>
<td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
</tr>'
av6
hgweb: use css for stripey background in coal...
r25664 diffblock = '<div class="source bottomline"><pre>{lines}</pre></div>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 comparisonblock ='
<tbody class="block">
{lines}
</tbody>'
comparisonline = '
<tr>
<td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
<td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
</tr>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
Anton Shestakov
hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)...
r23740 changesetparentdiff = '
{changesetparent}
{ifeq(node, basenode, '(current diff)', '({difffrom})')}'
difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
filerename = '{file|escape}@'
filelogrename = '
Kevin Gessner
hgweb: add base link to file log for paper and coal styles (issue2452)
r13850 <span class="base">
base
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Kevin Gessner
hgweb: add base link to file log for paper and coal styles (issue2452)
r13850 {file|escape}@{node|short}
</a>
</span>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 fileannotateparent = '
<tr>
<td class="metatag">parent:</td>
<td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {rename%filerename}{node|short}
</a>
</td>
</tr>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogchild = '
<tr>
<th class="child">child</th>
<td class="child">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {node|short}
</a>
</td>
</tr>'
fileannotatechild = '
<tr>
<td class="metatag">child:</td>
<td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {node|short}
</a>
</td>
</tr>'
tags = ../paper/tags.tmpl
tagentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {tag|escape}
</a>
</td>
<td class="node">
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
{node|short}
</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </td>
</tr>'
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 bookmarks = ../paper/bookmarks.tmpl
bookmarkentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 <td>
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 {bookmark|escape}
</a>
</td>
<td class="node">
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
{node|short}
</a>
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 </td>
</tr>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 branches = ../paper/branches.tmpl
branchentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {branch|escape}
</a>
</td>
<td class="node">
av6
hgweb: provide links to branches, tags and bookmarks by name (paper and coal)...
r25779 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
{node|short}
</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </td>
</tr>'
changelogtag = '<span class="tag">{name|escape}</span> '
changesettag = '<span class="tag">{tag|escape}</span> '
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
Thomas Arendsen Hein
trailing spaces (and one stray tab)
r10575 changelogbranchname = '<span class="branchname">{name|escape}</span> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
filediffparent = '
<tr>
<th class="parent">parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
filelogparent = '
<tr>
<th>parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
filediffchild = '
<tr>
<th class="child">child {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </td>
</tr>'
filelogchild = '
<tr>
<th>child {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
indexentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>{description}</td>
<td>{contact|obfuscate}</td>
Brodie Rao
hgweb: fix dynamic date calculation not working under Safari...
r15375 <td class="age">{lastchange|rfc822date}</td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 index = ../paper/index.tmpl
archiveentry = '
<li>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </li>'
notfound = ../paper/notfound.tmpl
error = ../paper/error.tmpl
urlparameter = '{separator}{name}={value|urlescape}'
hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
Anton Shestakov
hgweb: add searchhint to templates/coal/map...
r23783
searchhint = 'Find changesets by keywords (author, files, the commit message), revision
number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'