Mercurial > hg
annotate tests/test-basic.t @ 51758:421c9b3f2f4e
commit: set whole manifest entries at once (node with its associated flags)
Add a new function manifest.set that sets whole manifest entries at once,
so the caller doesn't have to do two separate operations:
m[p] = n
m.set_flags(f)
becomes:
m.set(p, n, f)
This obviously saves an extra lookup by path, and it also lets the
underlying manifest implementation to be more efficient as
it doesn't have to deal with partially-specified entries.
It makes the interaction conceptually simpler, as well, since we don't
have to go through an intermediate state of incorrect
partially-written entry.
(the real motivation for this change is an alternative manifest
implementation where we batch pending writes, and dealing with
fully defined entries makes the batching logic muchsimpler while
avoiding slowdown due to alternating writes and reads)
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Thu, 01 Aug 2024 13:38:31 +0100 |
parents | c84844cd523a |
children |
rev | line source |
---|---|
11742 | 1 Create a repository: |
2 | |
37342
4e6a6d0dccee
tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37009
diff
changeset
|
3 #if no-extraextensions |
20608
a3ca1d032926
config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents:
17346
diff
changeset
|
4 $ hg config |
47776
036b9b3cc79a
run-tests: use a small timeout for chg instance
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47279
diff
changeset
|
5 chgserver.idletimeout=60 |
25290
8f88f768e24c
devel: rename 'all' to 'all-warnings' (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24751
diff
changeset
|
6 devel.all-warnings=true |
32410
f94d7e3e46a0
devel: activate default-date in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
31964
diff
changeset
|
7 devel.default-date=0 0 |
33426
29653495cece
tests: add extra output for fsmonitor at showconfig
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
32940
diff
changeset
|
8 extensions.fsmonitor= (fsmonitor !) |
48674
f7086f6173f8
dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48296
diff
changeset
|
9 format.use-dirstate-v2=1 (dirstate-v2 !) |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
35280
diff
changeset
|
10 largefiles.usercache=$TESTTMP/.cache/largefiles |
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
35280
diff
changeset
|
11 lfs.usercache=$TESTTMP/.cache/lfs |
20608
a3ca1d032926
config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents:
17346
diff
changeset
|
12 ui.slash=True |
a3ca1d032926
config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents:
17346
diff
changeset
|
13 ui.interactive=False |
45826
21733e8c924f
errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents:
42419
diff
changeset
|
14 ui.detailed-exit-code=True |
40470
d6b6f1b441cf
run-tests: define the default merge tool through configuration
Boris Feld <boris.feld@octobus.net>
parents:
40369
diff
changeset
|
15 ui.merge=internal:merge |
21918
10abc3a5c6b2
filemerge: use 'basic' as the default of '[ui] mergemarkers' for safety
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20608
diff
changeset
|
16 ui.mergemarkers=detailed |
23053
5ba11ab48fcf
ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents:
21918
diff
changeset
|
17 ui.promptecho=True |
47919
a28a7dcb9158
tests: setup dummyssh as the default ssh
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
47776
diff
changeset
|
18 ui.ssh=* (glob) |
46015
f44b9c72f061
run-tests: allow some slack about 'waiting on lock' message
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45826
diff
changeset
|
19 ui.timeout.warn=15 |
31009
161ab32b44a1
runtests: set web.address to localhost
Jun Wu <quark@fb.com>
parents:
30986
diff
changeset
|
20 web.address=localhost |
31010 | 21 web\.ipv6=(?:True|False) (re) |
37009
5890e5872f36
hgweb: allow defining Server response header for HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
36638
diff
changeset
|
22 web.server-header=testing stub value |
37342
4e6a6d0dccee
tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37009
diff
changeset
|
23 #endif |
4e6a6d0dccee
tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37009
diff
changeset
|
24 |
13956
ffb5c09ba822
tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents:
13568
diff
changeset
|
25 $ hg init t |
11742 | 26 $ cd t |
27 | |
31964
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
28 Prepare a changeset: |
11742 | 29 |
30 $ echo a > a | |
31 $ hg add a | |
31964
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
32 |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
33 $ hg status |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
34 A a |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
35 |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
36 Writes to stdio succeed and fail appropriately |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
37 |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
38 #if devfull |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
39 $ hg status 2>/dev/full |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
40 A a |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
41 |
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
42 $ hg status >/dev/full |
48341
51f26c8088b2
tests: Adapt test-basic.t expected output for rhg
Simon Sapin <simon.sapin@octobus.net>
parents:
48335
diff
changeset
|
43 abort: No space left on device* (glob) |
31964
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
44 [255] |
34448
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
45 #endif |
31964
ebaada96aec3
stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents:
31010
diff
changeset
|
46 |
35653
48fe4f56a3b4
dispatch: handle IOError when writing to stderr
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
47 #if devfull |
34448
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
48 $ hg status >/dev/full 2>&1 |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
49 [255] |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
50 |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
51 $ hg status ENOENT 2>/dev/full |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
52 [255] |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
53 #endif |
1f5bd3e1a7fe
test-basic: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents:
33426
diff
changeset
|
54 |
46175
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
55 On Python 3, stdio may be None: |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
56 |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
57 $ hg debuguiprompt --config ui.interactive=true 0<&- |
48296
4ee6b8b40787
rust: update the minimum version of Rust
Raphaël Gomès <rgomes@octobus.net>
parents:
48295
diff
changeset
|
58 abort: Bad file descriptor (no-rhg !) |
4ee6b8b40787
rust: update the minimum version of Rust
Raphaël Gomès <rgomes@octobus.net>
parents:
48295
diff
changeset
|
59 abort: response expected (rhg !) |
46175
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
60 [255] |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
61 $ hg version -q 0<&- |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
62 Mercurial Distributed SCM * (glob) |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
63 |
48296
4ee6b8b40787
rust: update the minimum version of Rust
Raphaël Gomès <rgomes@octobus.net>
parents:
48295
diff
changeset
|
64 #if py3 no-rhg |
46175
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
65 $ hg version -q 1>&- |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
66 abort: Bad file descriptor |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
67 [255] |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
68 #else |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
69 $ hg version -q 1>&- |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
70 #endif |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
71 $ hg unknown -q 1>&- |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
72 hg: unknown command 'unknown' |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
73 (did you mean debugknown?) |
46262
9c9e0b4b2ca7
error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com>
parents:
46175
diff
changeset
|
74 [10] |
46175
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
75 |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
76 $ hg version -q 2>&- |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
77 Mercurial Distributed SCM * (glob) |
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
78 $ hg unknown -q 2>&- |
46262
9c9e0b4b2ca7
error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com>
parents:
46175
diff
changeset
|
79 [10] |
46175
a04c03b0678e
procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org>
parents:
46015
diff
changeset
|
80 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11742
diff
changeset
|
81 $ hg commit -m test |
11742 | 82 |
83 This command is ancient: | |
331 | 84 |
11742 | 85 $ hg history |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11742
diff
changeset
|
86 changeset: 0:acb14030fe0a |
11742 | 87 tag: tip |
88 user: test | |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11742
diff
changeset
|
89 date: Thu Jan 01 00:00:00 1970 +0000 |
11742 | 90 summary: test |
91 | |
92 | |
13568
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
93 Verify that updating to revision 0 via commands.update() works properly |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
94 |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
95 $ cat <<EOF > update_to_rev0.py |
40369
ef6cab7930b3
py3: fix module imports in tests, as flagged by test-check-module-imports.t
Matt Harbison <matt_harbison@yahoo.com>
parents:
39707
diff
changeset
|
96 > from mercurial import commands, hg, ui as uimod |
ef6cab7930b3
py3: fix module imports in tests, as flagged by test-check-module-imports.t
Matt Harbison <matt_harbison@yahoo.com>
parents:
39707
diff
changeset
|
97 > myui = uimod.ui.load() |
36638
159b04de5fb0
py3: make test-basic.t pass on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
36247
diff
changeset
|
98 > repo = hg.repository(myui, path=b'.') |
38480
ecaa0ad4ed4f
tests: pass "rev" argument to commands.update() as string
Martin von Zweigbergk <martinvonz@google.com>
parents:
37342
diff
changeset
|
99 > commands.update(myui, repo, rev=b"0") |
13568
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
100 > EOF |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
101 $ hg up null |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
102 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39489
diff
changeset
|
103 $ "$PYTHON" ./update_to_rev0.py |
13568
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
104 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
105 $ hg identify -n |
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
106 0 |
17346
2944a6d35158
check-code: fix check for trailing whitespace on empty lines
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
107 |
13568
0b79cf616e65
commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents:
12156
diff
changeset
|
108 |
11742 | 109 Poke around at hashes: |
110 | |
111 $ hg manifest --debug | |
112 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a | |
113 | |
114 $ hg cat a | |
115 a | |
116 | |
117 Verify should succeed: | |
118 | |
119 $ hg verify | |
120 checking changesets | |
121 checking manifests | |
122 crosschecking files in changesets and manifests | |
123 checking files | |
49826
c84844cd523a
verify: also check dirstate
Raphaël Gomès <rgomes@octobus.net>
parents:
48873
diff
changeset
|
124 checking dirstate |
39489
f1186c292d03
verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents:
38480
diff
changeset
|
125 checked 1 changesets with 1 changes to 1 files |
11742 | 126 |
36247
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
127 Repository root: |
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
128 |
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
129 $ hg root |
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
130 $TESTTMP/t |
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
131 $ hg log -l1 -T '{reporoot}\n' |
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
132 $TESTTMP/t |
42418
9803323048b6
root: add support for -Tformatter option
Yuya Nishihara <yuya@tcha.org>
parents:
40547
diff
changeset
|
133 $ hg root -Tjson | sed 's|\\\\|\\|g' |
9803323048b6
root: add support for -Tformatter option
Yuya Nishihara <yuya@tcha.org>
parents:
40547
diff
changeset
|
134 [ |
9803323048b6
root: add support for -Tformatter option
Yuya Nishihara <yuya@tcha.org>
parents:
40547
diff
changeset
|
135 { |
42419
69883775b27d
root: add template variables pointing to repository directories
Yuya Nishihara <yuya@tcha.org>
parents:
42418
diff
changeset
|
136 "hgpath": "$TESTTMP/t/.hg", |
69883775b27d
root: add template variables pointing to repository directories
Yuya Nishihara <yuya@tcha.org>
parents:
42418
diff
changeset
|
137 "reporoot": "$TESTTMP/t", |
69883775b27d
root: add template variables pointing to repository directories
Yuya Nishihara <yuya@tcha.org>
parents:
42418
diff
changeset
|
138 "storepath": "$TESTTMP/t/.hg/store" |
42418
9803323048b6
root: add support for -Tformatter option
Yuya Nishihara <yuya@tcha.org>
parents:
40547
diff
changeset
|
139 } |
9803323048b6
root: add support for -Tformatter option
Yuya Nishihara <yuya@tcha.org>
parents:
40547
diff
changeset
|
140 ] |
36247
48a6b1a22ccf
templatekw: add {reporoot} keyword
Yuya Nishihara <yuya@tcha.org>
parents:
35653
diff
changeset
|
141 |
11742 | 142 At the end... |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
143 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13956
diff
changeset
|
144 $ cd .. |
40547
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
145 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
146 Status message redirection: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
147 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
148 $ hg init empty |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
149 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
150 status messages are sent to stdout by default: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
151 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
152 $ hg outgoing -R t empty -Tjson 2>/dev/null |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
153 comparing with empty |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
154 searching for changes |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
155 [ |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
156 { |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
157 "bookmarks": [], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
158 "branch": "default", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
159 "date": [0, 0], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
160 "desc": "test", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
161 "node": "acb14030fe0a21b60322c440ad2d20cf7685a376", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
162 "parents": ["0000000000000000000000000000000000000000"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
163 "phase": "draft", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
164 "rev": 0, |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
165 "tags": ["tip"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
166 "user": "test" |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
167 } |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
168 ] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
169 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
170 which can be configured to send to stderr, so the output wouldn't be |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
171 interleaved: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
172 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
173 $ cat <<'EOF' >> "$HGRCPATH" |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
174 > [ui] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
175 > message-output = stderr |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
176 > EOF |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
177 $ hg outgoing -R t empty -Tjson 2>/dev/null |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
178 [ |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
179 { |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
180 "bookmarks": [], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
181 "branch": "default", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
182 "date": [0, 0], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
183 "desc": "test", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
184 "node": "acb14030fe0a21b60322c440ad2d20cf7685a376", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
185 "parents": ["0000000000000000000000000000000000000000"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
186 "phase": "draft", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
187 "rev": 0, |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
188 "tags": ["tip"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
189 "user": "test" |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
190 } |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
191 ] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
192 $ hg outgoing -R t empty -Tjson >/dev/null |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
193 comparing with empty |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
194 searching for changes |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
195 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
196 this option should be turned off by HGPLAIN= since it may break scripting use: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
197 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
198 $ HGPLAIN= hg outgoing -R t empty -Tjson 2>/dev/null |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
199 comparing with empty |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
200 searching for changes |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
201 [ |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
202 { |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
203 "bookmarks": [], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
204 "branch": "default", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
205 "date": [0, 0], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
206 "desc": "test", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
207 "node": "acb14030fe0a21b60322c440ad2d20cf7685a376", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
208 "parents": ["0000000000000000000000000000000000000000"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
209 "phase": "draft", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
210 "rev": 0, |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
211 "tags": ["tip"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
212 "user": "test" |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
213 } |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
214 ] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
215 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
216 but still overridden by --config: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
217 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
218 $ HGPLAIN= hg outgoing -R t empty -Tjson --config ui.message-output=stderr \ |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
219 > 2>/dev/null |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
220 [ |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
221 { |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
222 "bookmarks": [], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
223 "branch": "default", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
224 "date": [0, 0], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
225 "desc": "test", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
226 "node": "acb14030fe0a21b60322c440ad2d20cf7685a376", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
227 "parents": ["0000000000000000000000000000000000000000"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
228 "phase": "draft", |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
229 "rev": 0, |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
230 "tags": ["tip"], |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
231 "user": "test" |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
232 } |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
233 ] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
234 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
235 Invalid ui.message-output option: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
236 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
237 $ hg log -R t --config ui.message-output=bad |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
238 abort: invalid ui.message-output destination: bad |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
239 [255] |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
240 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
241 Underlying message streams should be updated when ui.fout/ferr are set: |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
242 |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
243 $ cat <<'EOF' > capui.py |
48873
5aafc3c5bdec
py3: use io.BytesIO directly
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48681
diff
changeset
|
244 > import io |
5aafc3c5bdec
py3: use io.BytesIO directly
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48681
diff
changeset
|
245 > from mercurial import registrar |
40547
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
246 > cmdtable = {} |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
247 > command = registrar.command(cmdtable) |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
248 > @command(b'capui', norepo=True) |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
249 > def capui(ui): |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
250 > out = ui.fout |
48873
5aafc3c5bdec
py3: use io.BytesIO directly
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48681
diff
changeset
|
251 > ui.fout = io.BytesIO() |
40547
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
252 > ui.status(b'status\n') |
48873
5aafc3c5bdec
py3: use io.BytesIO directly
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48681
diff
changeset
|
253 > ui.ferr = io.BytesIO() |
40547
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
254 > ui.warn(b'warn\n') |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
255 > out.write(b'stdout: %s' % ui.fout.getvalue()) |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
256 > out.write(b'stderr: %s' % ui.ferr.getvalue()) |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
257 > EOF |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
258 $ hg --config extensions.capui=capui.py --config ui.message-output=stdio capui |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
259 stdout: status |
840cd57cde32
ui: add config knob to redirect status messages to stderr (API)
Yuya Nishihara <yuya@tcha.org>
parents:
40470
diff
changeset
|
260 stderr: warn |