Mercurial > hg
annotate mercurial/templates/monoblue/fileannotate.tmpl @ 26375:3686fa2b8eee
windows: insert file positioning call between reads and writes
fopen() and fdopen() have a unique-to-Windows requirement that
transitions between read and write operations in files opened
in modes r+, w+, and a+ perform a file positioning call
(fsetpos, fseek, or rewind) in between. While the MSDN docs don't
say what will happen if this is not done, observations reveal
that Python raises an IOError with errno 0. Furthermore, I
/think/ this behavior isn't deterministic. But I can reproduce
it reliably with subsequent patches applied that open revlogs
in a+ mode and perform both reads and writes.
This patch introduces a proxy class for file handles opened
in r+, w+, and a+ mode on Windows. The class intercepts calls
and audits whether a file positioning function has been called
between read and write operations. If not, a dummy, no-op seek
to the current file position is performed. This appears to be
sufficient to "trick" Windows into allowing transitions between
read and writes without raising errors.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 27 Sep 2015 18:46:53 -0700 |
parents | 0cdcbc477cac |
children | 264e88901c44 |
rev | line source |
---|---|
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
1 {header} |
7111 | 2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
3 <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
4 <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> |
7111 | 5 </head> |
6 | |
7 <body> | |
8 <div id="container"> | |
9 <div class="page-header"> | |
18258
bebb05a7e249
hgweb: add a "URL breadcrumb" to the index and repository pages
Angel Ezquerra <angel.ezquerra at gmail.com>
parents:
17202
diff
changeset
|
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate</h1> |
7111 | 11 |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
12 <form action="{url|urlescape}log"> |
7111 | 13 {sessionvars%hiddenformentry} |
14 <dl class="search"> | |
15 <dt><label>Search: </label></dt> | |
16 <dd><input type="text" name="rev" /></dd> | |
17 </dl> | |
18 </form> | |
19 | |
20 <ul class="page-nav"> | |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
21 <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
22 <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
23 <li><a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a></li> |
25604
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
24 <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
25 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
26 <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
27 <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> |
25604
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
28 <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></li> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
29 <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> |
7111 | 30 </ul> |
31 </div> | |
32 | |
33 <ul class="submenu"> | |
25604
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
34 <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> |
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
35 <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> |
7111 | 36 <li class="current">annotate</li> |
25604
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
37 <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> |
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
38 <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> |
0cdcbc477cac
hgweb: don't dereference symbolic revision in monoblue style
Anton Shestakov <av6@dwimlabs.net>
parents:
24109
diff
changeset
|
39 <li><a href="{url|urlescape}raw-annotate/{symrev}/{file|urlescape}">raw</a></li> |
7111 | 40 </ul> |
41 | |
42 <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2> | |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
43 <h3 class="changeset">{file|escape}</h3> |
24109
31bedb15e2e5
hgweb: recreate old DOM structure for css in monoblue style
Anton Shestakov <engored@ya.ru>
parents:
18628
diff
changeset
|
44 <p class="changeset-age"><span class="age">{date|rfc822date}</span></p> |
7111 | 45 |
46 <dl class="overview"> | |
47 <dt>author</dt> | |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
48 <dd>{author|obfuscate}</dd> |
7111 | 49 <dt>date</dt> |
15375
fe9d36a6853e
hgweb: fix dynamic date calculation not working under Safari
Brodie Rao <brodie@bitheap.org>
parents:
14046
diff
changeset
|
50 <dd>{date|rfc822date}</dd> |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
51 {branch%filerevbranch} |
7111 | 52 <dt>changeset {rev}</dt> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
53 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
54 {parent%fileannotateparent} |
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
55 {child%fileannotatechild} |
7111 | 56 <dt>permissions</dt> |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
57 <dd>{permissions|permissions}</dd> |
7111 | 58 </dl> |
59 | |
18628
52305554fd6e
hgweb: apply the websub filter to revision descriptions
Angel Ezquerra <angel.ezquerra@gmail.com>
parents:
18526
diff
changeset
|
60 <p class="description">{desc|strip|escape|websub|addbreaks|nonempty}</p> |
7111 | 61 |
62 <table class="annotated"> | |
63 {annotate%annotateline} | |
64 </table> | |
65 | |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
66 {footer} |