Mercurial > hg
annotate mercurial/helptext/dates.txt @ 45095:8e04607023e5
procutil: ensure that procutil.std{out,err}.write() writes all bytes
Python 3 offers different kind of streams and it’s not guaranteed for all of
them that calling write() writes all bytes.
When Python is started in unbuffered mode, sys.std{out,err}.buffer are
instances of io.FileIO, whose write() can write less bytes for
platform-specific reasons (e.g. Linux has a 0x7ffff000 bytes maximum and could
write less if interrupted by a signal; when writing to Windows consoles, it’s
limited to 32767 bytes to avoid the "not enough space" error). This can lead to
silent loss of data, both when using sys.std{out,err}.buffer (which may in fact
not be a buffered stream) and when using the text streams sys.std{out,err}
(I’ve created a CPython bug report for that:
https://bugs.python.org/issue41221).
Python may fix the problem at some point. For now, we implement our own wrapper
for procutil.std{out,err} that calls the raw stream’s write() method until all
bytes have been written. We don’t use sys.std{out,err} for larger writes, so I
think it’s not worth the effort to patch them.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Fri, 10 Jul 2020 12:27:58 +0200 |
parents | 2e017696181f |
children | d010adc483cc |
rev | line source |
---|---|
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
1 Some commands allow the user to specify a date, e.g.: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
2 |
9540
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
3 - backout, commit, import, tag: Specify the commit date. |
cad36e496640
help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents:
9539
diff
changeset
|
4 - log, revert, update: Select revision(s) by date. |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
5 |
9893
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
6 Many date formats are valid. Here are some examples: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
7 |
9893
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
8 - ``Wed Dec 6 13:18:29 2006`` (local timezone assumed) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
9 - ``Dec 6 13:18 -0600`` (year assumed, time offset provided) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
10 - ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
11 - ``Dec 6`` (midnight) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
12 - ``13:18`` (today assumed) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
13 - ``3:39`` (3:39AM assumed) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
14 - ``3:39pm`` (15:39) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
15 - ``2006-12-06 13:18:29`` (ISO 8601 format) |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
16 - ``2006-12-6 13:18`` |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
17 - ``2006-12-6`` |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
18 - ``12-6`` |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
19 - ``12/6`` |
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
20 - ``12/6/6`` (Dec 6 2006) |
18537
ae60735e37d2
dates: support 'today' and 'yesterday' in parsedate (issue3764)
Paul Cavallaro <ptc@fb.com>
parents:
13887
diff
changeset
|
21 - ``today`` (midnight) |
ae60735e37d2
dates: support 'today' and 'yesterday' in parsedate (issue3764)
Paul Cavallaro <ptc@fb.com>
parents:
13887
diff
changeset
|
22 - ``yesterday`` (midnight) |
18614
b2586e2cc67a
parsedate: understand "now" as a shortcut for the current time
Augie Fackler <raf@durin42.com>
parents:
18537
diff
changeset
|
23 - ``now`` - right now |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
24 |
9893
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
25 Lastly, there is Mercurial's internal format: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
26 |
19968
7bec3f697d76
doc: fix internal date sample (issue4072)
Pavlos Touboulidis <pav@pav.gr>
parents:
18614
diff
changeset
|
27 - ``1165411109 0`` (Wed Dec 6 13:18:29 2006 UTC) |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
28 |
13882
0a0988bd4818
help/dates: rephrase explanation of internal format
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
29 This is the internal representation format for dates. The first number |
0a0988bd4818
help/dates: rephrase explanation of internal format
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
30 is the number of seconds since the epoch (1970-01-01 00:00 UTC). The |
0a0988bd4818
help/dates: rephrase explanation of internal format
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
31 second is the offset of the local timezone, in seconds west of UTC |
0a0988bd4818
help/dates: rephrase explanation of internal format
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
32 (negative if the timezone is east of UTC). |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
33 |
9893
af873901b575
commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents:
9540
diff
changeset
|
34 The log command also accepts date ranges: |
9539
c904e76e3834
help: move help topics from mercurial/help.py to help/*.txt
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
35 |
13886
fe48c57390f2
help/dates: use DATE as place-holder in help and abort texts
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
36 - ``<DATE`` - at or before a given date/time |
fe48c57390f2
help/dates: use DATE as place-holder in help and abort texts
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
37 - ``>DATE`` - on or after a given date/time |
fe48c57390f2
help/dates: use DATE as place-holder in help and abort texts
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
38 - ``DATE to DATE`` - a date range, inclusive |
fe48c57390f2
help/dates: use DATE as place-holder in help and abort texts
Martin Geisler <mg@aragost.com>
parents:
9999
diff
changeset
|
39 - ``-DAYS`` - within a given number of days of today |