Mercurial > hg
annotate mercurial/help/hgrc.5.txt @ 31956:c13ff31818b0
ui: add special-purpose atexit functionality
In spite of its longstanding use, Python's built-in atexit code is
not suitable for Mercurial's purposes, for several reasons:
* Handlers run after application code has finished.
* Because of this, the code that runs handlers swallows exceptions
(since there's no possible stacktrace to associate errors with).
If we're lucky, we'll get something spat out to stderr (if stderr
still works), which of course isn't any use in a big deployment
where it's important that exceptions get logged and aggregated.
* Mercurial's current atexit handlers make unfortunate assumptions
about process state (specifically stdio) that, coupled with the
above problems, make it impossible to deal with certain categories
of error (try "hg status > /dev/full" on a Linux box).
* In Python 3, the atexit implementation is completely hidden, so
we can't hijack the platform's atexit code to run handlers at a
time of our choosing.
As a result, here's a perfectly cromulent atexit-like implementation
over which we have control. This lets us decide exactly when the
handlers run (after each request has completed), and control what
the process state is when that occurs (and afterwards).
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Tue, 11 Apr 2017 14:54:12 -0700 |
parents | 75149f84eac7 |
children | 854a7315603e |
rev | line source |
---|---|
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
1 ====== |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
2 hgrc |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
3 ====== |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
4 |
9158
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
5 --------------------------------- |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
6 configuration files for Mercurial |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
7 --------------------------------- |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
8 |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
9 :Author: Bryan O'Sullivan <bos@serpentine.com> |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
10 :Organization: Mercurial |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
11 :Manual section: 5 |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
12 :Manual group: Mercurial Manual |
d6eecafaf12f
doc: use reStructuredText for man and HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
8900
diff
changeset
|
13 |
9422
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9381
diff
changeset
|
14 .. contents:: |
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9381
diff
changeset
|
15 :backlinks: top |
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9381
diff
changeset
|
16 :class: htmlonly |
ec26d6986d85
doc: add TOC to hg.1.html and hgrc.5.html
Martin Geisler <mg@lazybytes.net>
parents:
9381
diff
changeset
|
17 |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
18 |
19316
6f3428c528b4
docs: change description to synopsis in hgrc.5
Matt Mackall <mpm@selenic.com>
parents:
17267
diff
changeset
|
19 Description |
6f3428c528b4
docs: change description to synopsis in hgrc.5
Matt Mackall <mpm@selenic.com>
parents:
17267
diff
changeset
|
20 =========== |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
21 |
19426
e43184680461
doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com>
parents:
19316
diff
changeset
|
22 .. include:: hgrc.5.gendoc.txt |
938 | 23 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9784
diff
changeset
|
24 Author |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
25 ====== |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
26 Bryan O'Sullivan <bos@serpentine.com>. |
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
27 |
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
28 Mercurial was written by Matt Mackall <mpm@selenic.com>. |
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
29 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9784
diff
changeset
|
30 See Also |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
31 ======== |
9162
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
32 |hg(1)|_, |hgignore(5)|_ |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
33 |
9792
dd1a95ccbe07
doc: use titlecase in man page section titles
Martin Geisler <mg@lazybytes.net>
parents:
9784
diff
changeset
|
34 Copying |
17267
979b107eaea2
doc: unify section level between help topics
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
16548
diff
changeset
|
35 ======= |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
36 This manual page is copyright 2005 Bryan O'Sullivan. |
30907
75149f84eac7
misc: update year in copyright lines
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27925
diff
changeset
|
37 Mercurial is copyright 2005-2017 Matt Mackall. |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
38 Free use of this software is granted under the terms of the GNU General |
10263 | 39 Public License version 2 or any later version. |
9162
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
40 |
2399362b3bb0
doc: link man pages to one another
Martin Geisler <mg@lazybytes.net>
parents:
9161
diff
changeset
|
41 .. include:: common.txt |