Mercurial > hg
view doc/style.css @ 47214:906a7bcaac86
revlog: introduce a mandatory `_writing` context to update revlog content
Before this change, various revlog methods where managing the opening and
closing of the revlog files manually and passing the file descriptor alors the
call path. To simplify the tracking of the write operation by a future docket,
we need something more organised. As a result, we introduce a `revlog._writing`
context manager that will wrap each revlog update operation. The file
descriptor are kept in the existing `revlog._writinghandles` parameter that
was already used by the `addgroup` logic.
All this change is internal to the revlog only, the "public" interface is not
affected. The `addrevision` and `addgroup` logic are still responsible for
setup up this context. However this new context give us multiple benefits:
* all writer use a same, unified, logic,
* this context is programmatically enforced,
* each write "session" as a clearly identified start and end.
The post-pull sidedata update logic is still doing writing by end and will be
adjusted in a later changesets.
This change affect the concurrency checker test, because register the state of
the file in the transaction sooner in `addrevision` (about as early as what
`addgroup` would do), so the abort is rollbacking the other commit. I don't want
to weaken the current main logic.
Differential Revision: https://phab.mercurial-scm.org/D10605
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 03 May 2021 12:27:42 +0200 |
parents | 4b0fc75f9403 |
children |
line wrap: on
line source
/* * Styles for man pages, which match with https://mercurial-scm.org/ * * Color scheme & layout are borrowed from * https://mercurial-scm.org/css/styles.css * * Some styles are from html4css1.css from Docutils, which is in the * public domain. */ body { margin: 0; padding: 0; font-family: sans-serif; } .document { position: relative; /* be a top of absolute positioning */ margin: 1.5em 1.8em; padding: 0; line-height: 1.3; } /* layout: toc to right */ #contents { position: absolute; right: 0; top: 0; width: 26%; } /* layout: others to left */ h1.title, h2.subtitle, .section { width: 72%; } .section .section { width: auto; } table.docinfo { max-width: 72%; } /* headings */ h1, h2, .topic-title, .admonition-title { font-family: "MgOpen Cosmetica", "Lucida Sans Unicode", sans-serif; font-weight: normal; } h1, h2, .topic-title, .admonition-title { margin: 1em 0 0.5em; } h1.title { font-size: 300%; } h2.subtitle, h1 { font-size: 200%; } h2, .topic-title, .admonition-title { font-size: 140%; } /* subtitle starts with lowercase in man pages, but not in HTML */ h2.subtitle:first-letter { text-transform: uppercase; } /* override first/last margin */ .first, h1.title, h2.subtitle { margin-top: 0 !important; } .last, .with-subtitle { margin-bottom: 0 !important; } blockquote, pre, dd .option-list, .field-list { margin: 0.2em 0 1em 2em; } kbd, tt, pre { font-family: monospace; } dt { font-weight: bold; } dd { margin-bottom: 0.5em; } th, td { padding: 0.1em 0.2em; border: 0 none; } th { font-weight: bold; text-align: left; } a:link, a:visited { text-decoration: underline; } a:hover, a:focus { text-decoration: none; } a:link { color: #00b5f1; } a:visited { color: #5c9caf; } a:link.toc-backref, a:visited.toc-backref { text-decoration: none; color: inherit; /* NOTE: `inherit' is not supported by IE6 */ } div.admonition, div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning { border-top: 1px #ccc solid; border-bottom: 1px #ccc solid; padding: 0.3em 1em; margin: 1em; } div.note { border-color: #fcc200; } /* * The following styles are from Docutils. * Please refine if necessary. */ table.borderless td, table.borderless th { /* Override padding for "table.docutils td" with "! important". The right padding separates the table cells. */ padding: 0 0.5em 0 0 ! important; } .hidden { display: none; } blockquote.epigraph { margin: 2em 5em; } div.abstract { margin: 2em 5em; } div.dedication { margin: 2em 5em; text-align: center; font-style: italic; } div.figure { margin-left: 2em; margin-right: 2em; } div.footer, div.header { clear: both; font-size: smaller; } div.line-block { display: block; margin-top: 1em; margin-bottom: 1em; } div.line-block div.line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } div.sidebar { margin: 0 0 0.5em 1em; border: medium outset; padding: 1em; background-color: #ffffee; width: 40%; float: right; clear: right; } div.sidebar p.rubric { font-family: sans-serif; font-size: medium; } div.system-messages { margin: 5em; } div.system-messages h1 { color: red; } div.system-message { border: medium outset; padding: 1em; } div.system-message p.system-message-title { color: red; font-weight: bold; } h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { margin-top: 0.4em; } hr.docutils { width: 75%; } img.align-left { clear: left; } img.align-right { clear: right; } ol.simple, ul.simple { margin-bottom: 1em; } ol.arabic { list-style: decimal; } ol.loweralpha { list-style: lower-alpha; } ol.upperalpha { list-style: upper-alpha; } ol.lowerroman { list-style: lower-roman; } ol.upperroman { list-style: upper-roman; } p.attribution { text-align: right; margin-left: 50%; } p.caption { font-style: italic; } p.credits { font-style: italic; font-size: smaller; } p.label { white-space: nowrap; } p.rubric { font-weight: bold; font-size: larger; color: maroon; text-align: center; } pre.address { margin-bottom: 0; margin-top: 0; font-family: serif; font-size: 100%; } pre.literal-block, pre.doctest-block { margin-left: 2em; margin-right: 2em; } span.classifier { font-family: sans-serif; font-style: oblique; } span.classifier-delimiter { font-family: sans-serif; font-weight: bold; } span.interpreted { font-family: sans-serif; } span.option { white-space: nowrap; } span.pre { white-space: pre; } span.problematic { color: red; } span.section-subtitle { /* font-size relative to parent (h1..h6 element) */ font-size: 80%; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.footnote { border-left: solid 1px black; margin-left: 1px; } h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { font-size: 100%; } ul.auto-toc { list-style-type: none; } div.contents.local { -moz-column-width: 10em; -moz-column-gap: 1em; -webkit-column-width: 10em; -webkit-column-gap: 1em; }