Mercurial > hg
view mercurial/templates/coal/map @ 16658:6b3d31d04a69
phases: make advance/retractboundary() atomic
Before this, if advanceboundary() failed after updating some roots but
before calling retractboundary(), the phase cache would be left in an
invalid state, marked dirty, and written as such. This patch approach is
to turn advance/retractboundary() into phasecache methods, then operate
on copies and merge them back on success.
With the same technique, we can ensure the atomicity of combinations of
advance/retractboundary() calls, like those performed in changegroup
handling code.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sat, 12 May 2012 00:24:07 +0200 |
parents | fe9d36a6853e |
children | 1ae119269ddc |
line wrap: on
line source
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 help = ../paper/help.tmpl helptopics = ../paper/helptopics.tmpl helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>' naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' filenolink = '{file|escape} ' fileellipses = '...' diffstatlink = ../paper/diffstat.tmpl diffstatnolink = ../paper/diffstat.tmpl changelogentry = ../paper/shortlogentry.tmpl searchentry = ../paper/shortlogentry.tmpl changeset = ../paper/changeset.tmpl manifest = ../paper/manifest.tmpl nav = '{before%naventry} {after%naventry}' navshort = '{before%navshortentry}{after%navshortentry}' navgraph = '{before%navgraphentry}{after%navgraphentry}' filenav = '{before%filenaventry}{after%filenaventry}' direntry = ' <tr class="fileline parity{parity}"> <td class="name"> <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}"> <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/ </a> <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> {emptydirs|escape} </a> </td> <td class="size"></td> <td class="permissions">drwxr-xr-x</td> </tr>' fileentry = ' <tr class="fileline parity{parity}"> <td class="filename"> <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape} </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 filelog = ../paper/filelog.tmpl fileline = ' <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' filelogentry = ../paper/filelogentry.tmpl annotateline = ' <tr class="parity{parity}"> <td class="annotate"> <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" 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>' diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>' 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}' changelogparent = ' <tr> <th class="parent">parent {rev}:</th> <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> </tr>' changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> ' filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> ' filerename = '{file|escape}@' filelogrename = ' <span class="base"> base <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> {file|escape}@{node|short} </a> </span>' fileannotateparent = ' <tr> <td class="metatag">parent:</td> <td> <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> {rename%filerename}{node|short} </a> </td> </tr>' changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' changelogchild = ' <tr> <th class="child">child</th> <td class="child"> <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> {node|short} </a> </td> </tr>' fileannotatechild = ' <tr> <td class="metatag">child:</td> <td> <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> {node|short} </a> </td> </tr>' tags = ../paper/tags.tmpl tagentry = ' <tr class="tagEntry parity{parity}"> <td> <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> {tag|escape} </a> </td> <td class="node"> {node|short} </td> </tr>' bookmarks = ../paper/bookmarks.tmpl bookmarkentry = ' <tr class="tagEntry parity{parity}"> <td> <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> {bookmark|escape} </a> </td> <td class="node"> {node|short} </td> </tr>' branches = ../paper/branches.tmpl branchentry = ' <tr class="tagEntry parity{parity}"> <td> <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> {branch|escape} </a> </td> <td class="node"> {node|short} </td> </tr>' changelogtag = '<span class="tag">{name|escape}</span> ' changesettag = '<span class="tag">{tag|escape}</span> ' changesetbookmark = '<span class="tag">{bookmark|escape}</span> ' changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' changelogbranchname = '<span class="branchname">{name|escape}</span> ' filediffparent = ' <tr> <th class="parent">parent {rev}:</th> <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> </tr>' filelogparent = ' <tr> <th>parent {rev}:</th> <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> </tr>' filediffchild = ' <tr> <th class="child">child {rev}:</th> <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> </td> </tr>' filelogchild = ' <tr> <th>child {rev}:</th> <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> </tr>' indexentry = ' <tr class="parity{parity}"> <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> <td>{description}</td> <td>{contact|obfuscate}</td> <td class="age">{lastchange|rfc822date}</td> <td class="indexlinks">{archives%indexarchiveentry}</td> </tr>\n' indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>' index = ../paper/index.tmpl archiveentry = ' <li> <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> </li>' notfound = ../paper/notfound.tmpl error = ../paper/error.tmpl urlparameter = '{separator}{name}={value|urlescape}' hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'