Mercurial > hg
annotate tests/test-pager.t @ 50400:95acba2c29f6
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Apparently the code uses "+=" with a bytes object, which is linear-time, so the
whole encoding is quadratic-time. This patch makes us use a bytearray object,
instead, which has a(n amortized-)constant-time append operation.
The encoding is still not particularly fast, but at least a 10MB file
takes tens of seconds, not many hours to encode.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 06 Mar 2023 11:27:57 +0000 |
parents | 42d2b31cee0b |
children |
rev | line source |
---|---|
28319 | 1 $ cat >> fakepager.py <<EOF |
2 > import sys | |
32541
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
3 > printed = False |
28319 | 4 > for line in sys.stdin: |
5 > sys.stdout.write('paged! %r\n' % line) | |
32541
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
6 > printed = True |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
7 > if not printed: |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
8 > sys.stdout.write('paged empty output!\n') |
28319 | 9 > EOF |
10 | |
11 Enable ui.formatted because pager won't fire without it, and set up | |
12 pager and tell it to use our fake pager that lets us see when the | |
13 pager was running. | |
14 $ cat >> $HGRCPATH <<EOF | |
15 > [ui] | |
16 > formatted = yes | |
32026
57042e91521a
color: turn on by default (but for windows)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32025
diff
changeset
|
17 > color = no |
28319 | 18 > [pager] |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38074
diff
changeset
|
19 > pager = "$PYTHON" $TESTTMP/fakepager.py |
28319 | 20 > EOF |
21 | |
22 $ hg init repo | |
23 $ cd repo | |
24 $ echo a >> a | |
25 $ hg add a | |
26 $ hg ci -m 'add a' | |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38074
diff
changeset
|
27 $ for x in `"$PYTHON" $TESTDIR/seq.py 1 10`; do |
28319 | 28 > echo a $x >> a |
29 > hg ci -m "modify a $x" | |
30 > done | |
31 | |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
32 By default diff and log are paged, but id is not: |
28319 | 33 |
34 $ hg diff -c 2 --pager=yes | |
35 paged! 'diff -r f4be7687d414 -r bce265549556 a\n' | |
36 paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\n' | |
37 paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n' | |
38 paged! '@@ -1,2 +1,3 @@\n' | |
39 paged! ' a\n' | |
40 paged! ' a 1\n' | |
41 paged! '+a 2\n' | |
42 | |
43 $ hg log --limit 2 | |
44 paged! 'changeset: 10:46106edeeb38\n' | |
45 paged! 'tag: tip\n' | |
46 paged! 'user: test\n' | |
47 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
48 paged! 'summary: modify a 10\n' | |
49 paged! '\n' | |
50 paged! 'changeset: 9:6dd8ea7dd621\n' | |
51 paged! 'user: test\n' | |
52 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
53 paged! 'summary: modify a 9\n' | |
54 paged! '\n' | |
55 | |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
56 $ hg id |
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
57 46106edeeb38 tip |
28319 | 58 |
32098
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
59 We can control the pager from the config |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
60 |
32104
f06d23af6cdf
pager: rename 'pager.enable' to 'ui.paginate'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32103
diff
changeset
|
61 $ hg log --limit 1 --config 'ui.paginate=False' |
32098
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
62 changeset: 10:46106edeeb38 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
63 tag: tip |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
64 user: test |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
65 date: Thu Jan 01 00:00:00 1970 +0000 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
66 summary: modify a 10 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
67 |
32104
f06d23af6cdf
pager: rename 'pager.enable' to 'ui.paginate'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32103
diff
changeset
|
68 $ hg log --limit 1 --config 'ui.paginate=0' |
32098
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
69 changeset: 10:46106edeeb38 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
70 tag: tip |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
71 user: test |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
72 date: Thu Jan 01 00:00:00 1970 +0000 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
73 summary: modify a 10 |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
74 |
32104
f06d23af6cdf
pager: rename 'pager.enable' to 'ui.paginate'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32103
diff
changeset
|
75 $ hg log --limit 1 --config 'ui.paginate=1' |
32098
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
76 paged! 'changeset: 10:46106edeeb38\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
77 paged! 'tag: tip\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
78 paged! 'user: test\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
79 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
80 paged! 'summary: modify a 10\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
81 paged! '\n' |
149440d7e1a7
pager: test the 'enable' config option
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32074
diff
changeset
|
82 |
33620
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
83 explicit --pager=on should take precedence over other configurations |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
84 (issue5580) |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
85 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
86 $ cat >> $HGRCPATH <<EOF |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
87 > [ui] |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
88 > paginate = false |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
89 > EOF |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
90 $ hg log --limit 1 --pager=on |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
91 paged! 'changeset: 10:46106edeeb38\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
92 paged! 'tag: tip\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
93 paged! 'user: test\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
94 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
95 paged! 'summary: modify a 10\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
96 paged! '\n' |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
97 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
98 $ cat >> $HGRCPATH <<EOF |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
99 > [ui] |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
100 > # true is default value of ui.paginate |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
101 > paginate = true |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
102 > EOF |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
103 $ hg log --limit 1 --pager=off |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
104 changeset: 10:46106edeeb38 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
105 tag: tip |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
106 user: test |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
107 date: Thu Jan 01 00:00:00 1970 +0000 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
108 summary: modify a 10 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
109 |
cc047a733f69
ui: enable pager always for explicit --pager=on (issue5580)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
33097
diff
changeset
|
110 |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
111 We can enable the pager on id: |
28319 | 112 |
31405
d5eb20934c36
tests: duplicate test for pager for old extension and for in-core pager
Martin von Zweigbergk <martinvonz@google.com>
parents:
31079
diff
changeset
|
113 BROKEN: should be paged |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
114 $ hg --config pager.attend-id=yes id |
31405
d5eb20934c36
tests: duplicate test for pager for old extension and for in-core pager
Martin von Zweigbergk <martinvonz@google.com>
parents:
31079
diff
changeset
|
115 46106edeeb38 tip |
28319 | 116 |
30996
cc3c9b6f1e09
tests: clean up a bunch of pager testing that is about to be invalidated
Augie Fackler <augie@google.com>
parents:
30944
diff
changeset
|
117 Setting attend-$COMMAND to a false value works, even with pager in |
cc3c9b6f1e09
tests: clean up a bunch of pager testing that is about to be invalidated
Augie Fackler <augie@google.com>
parents:
30944
diff
changeset
|
118 core: |
28319 | 119 $ hg --config pager.attend-diff=no diff -c 2 |
120 diff -r f4be7687d414 -r bce265549556 a | |
121 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
122 +++ b/a Thu Jan 01 00:00:00 1970 +0000 | |
123 @@ -1,2 +1,3 @@ | |
124 a | |
125 a 1 | |
126 +a 2 | |
127 | |
32072
05cdd5678c6b
tests: drop unnecessary pager attend in test
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32026
diff
changeset
|
128 Command aliases should have same behavior as main command |
05cdd5678c6b
tests: drop unnecessary pager attend in test
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32026
diff
changeset
|
129 |
05cdd5678c6b
tests: drop unnecessary pager attend in test
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32026
diff
changeset
|
130 $ hg history --limit 2 |
28319 | 131 paged! 'changeset: 10:46106edeeb38\n' |
132 paged! 'tag: tip\n' | |
133 paged! 'user: test\n' | |
134 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
135 paged! 'summary: modify a 10\n' | |
136 paged! '\n' | |
137 paged! 'changeset: 9:6dd8ea7dd621\n' | |
138 paged! 'user: test\n' | |
139 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
140 paged! 'summary: modify a 9\n' | |
141 paged! '\n' | |
142 | |
32073
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
143 Abbreviated command alias should also be paged |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
144 |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
145 $ hg hist -l 1 |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
146 paged! 'changeset: 10:46106edeeb38\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
147 paged! 'tag: tip\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
148 paged! 'user: test\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
149 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
150 paged! 'summary: modify a 10\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
151 paged! '\n' |
04629b2da72c
tests: test that abbreviated command alias is also paged
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32072
diff
changeset
|
152 |
32074
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
153 Attend for an abbreviated command does not work |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
154 |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
155 $ hg --config pager.attend-ident=true ident |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
156 46106edeeb38 tip |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
157 |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
158 $ hg --config extensions.pager= --config pager.attend-ident=true ident |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
159 46106edeeb38 tip |
769c831708c7
tests: demonstrate that pager.attend-<abbreviated> doesn't work
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32073
diff
changeset
|
160 |
30847
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
161 Pager should not start if stdout is not a tty. |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
162 |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
163 $ hg log -l1 -q --config ui.formatted=False |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
164 10:46106edeeb38 |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
165 |
31079
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
166 Pager should be disabled if pager.pager is empty (otherwise the output would |
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
167 be silently lost.) |
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
168 |
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
169 $ hg log -l1 -q --config pager.pager= |
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
170 10:46106edeeb38 |
873ebdd6e84d
pager: do not try to run an empty pager command
Yuya Nishihara <yuya@tcha.org>
parents:
31000
diff
changeset
|
171 |
28531
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
172 Pager with color enabled allows colors to come through by default, |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
173 even though stdout is no longer a tty. |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
174 $ cat >> $HGRCPATH <<EOF |
32025
d323d9e0d7b4
pager: stop using the color extension in tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
31954
diff
changeset
|
175 > [ui] |
32103
9a98023ac8db
color: special case 'always' in 'ui.color'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
32102
diff
changeset
|
176 > color = always |
28531
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
177 > [color] |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
178 > mode = ansi |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
179 > EOF |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
180 $ hg log --limit 3 |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
181 paged! '\x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
182 paged! 'tag: tip\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
183 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
184 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
185 paged! 'summary: modify a 10\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
186 paged! '\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
187 paged! '\x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
188 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
189 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
190 paged! 'summary: modify a 9\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
191 paged! '\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
192 paged! '\x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
193 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
194 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
195 paged! 'summary: modify a 8\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
196 paged! '\n' |
29132
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
197 |
34442
73d8a5283f87
test-pager: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34021
diff
changeset
|
198 #if no-chg |
31478
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
199 An invalid pager command name is reported sensibly if we don't have to |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
200 use shell=True in the subprocess call: |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
201 $ hg log --limit 3 --config pager.pager=this-command-better-never-exist |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
202 missing pager command 'this-command-better-never-exist', skipping pager |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
203 \x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m (esc) |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
204 tag: tip |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
205 user: test |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
206 date: Thu Jan 01 00:00:00 1970 +0000 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
207 summary: modify a 10 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
208 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
209 \x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m (esc) |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
210 user: test |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
211 date: Thu Jan 01 00:00:00 1970 +0000 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
212 summary: modify a 9 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
213 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
214 \x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m (esc) |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
215 user: test |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
216 date: Thu Jan 01 00:00:00 1970 +0000 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
217 summary: modify a 8 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
218 |
34442
73d8a5283f87
test-pager: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
34021
diff
changeset
|
219 #endif |
31478
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
220 |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
221 A complicated pager command gets worse behavior. Bonus points if you can |
48256
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
222 improve this. Windows apparently does this better, but only sometimes? |
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
223 #if windows |
31478
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
224 $ hg log --limit 3 \ |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
225 > --config pager.pager='this-command-better-never-exist --seriously' \ |
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
226 > 2>/dev/null || true |
47807
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
227 \x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m (esc) (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
228 tag: tip (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
229 user: test (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
230 date: Thu Jan 01 00:00:00 1970 +0000 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
231 summary: modify a 10 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
232 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
233 \x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m (esc) (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
234 user: test (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
235 date: Thu Jan 01 00:00:00 1970 +0000 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
236 summary: modify a 9 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
237 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
238 \x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m (esc) (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
239 user: test (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
240 date: Thu Jan 01 00:00:00 1970 +0000 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
241 summary: modify a 8 (?) |
bc74cb9a8e40
pager: account for flakiness in Windows output
Raphaël Gomès <rgomes@octobus.net>
parents:
47614
diff
changeset
|
242 (?) |
48256
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
243 #else |
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
244 $ hg log --limit 3 \ |
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
245 > --config pager.pager='this-command-better-never-exist --seriously' \ |
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
246 > 2>/dev/null || true |
56d037d07395
backout: backed out changeset 2f2107c01dee
Raphaël Gomès <rgomes@octobus.net>
parents:
48185
diff
changeset
|
247 #endif |
31478
9335dc6b2a9c
pager: avoid shell=True on subprocess.Popen for better errors (issue5491)
Augie Fackler <augie@google.com>
parents:
31405
diff
changeset
|
248 |
29132
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
249 Pager works with shell aliases. |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
250 |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
251 $ cat >> $HGRCPATH <<EOF |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
252 > [alias] |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
253 > echoa = !echo a |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
254 > EOF |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
255 |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
256 $ hg echoa |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
257 a |
31405
d5eb20934c36
tests: duplicate test for pager for old extension and for in-core pager
Martin von Zweigbergk <martinvonz@google.com>
parents:
31079
diff
changeset
|
258 BROKEN: should be paged |
29132
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
259 $ hg --config pager.attend-echoa=yes echoa |
31405
d5eb20934c36
tests: duplicate test for pager for old extension and for in-core pager
Martin von Zweigbergk <martinvonz@google.com>
parents:
31079
diff
changeset
|
260 a |
29343
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
261 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
262 Pager works with hg aliases including environment variables. |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
263 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
264 $ cat >> $HGRCPATH <<'EOF' |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
265 > [alias] |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
266 > printa = log -T "$A\n" -r 0 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
267 > EOF |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
268 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
269 $ A=1 hg --config pager.attend-printa=yes printa |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
270 paged! '1\n' |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
271 $ A=2 hg --config pager.attend-printa=yes printa |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
272 paged! '2\n' |
29344 | 273 |
30942
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
274 Something that's explicitly attended is still not paginated if the |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
275 pager is globally set to off using a flag: |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
276 $ A=2 hg --config pager.attend-printa=yes printa --pager=no |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
277 2 |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
278 |
29344 | 279 Pager should not override the exit code of other commands |
280 | |
281 $ cat >> $TESTTMP/fortytwo.py <<'EOF' | |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32104
diff
changeset
|
282 > from mercurial import commands, registrar |
29344 | 283 > cmdtable = {} |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
32104
diff
changeset
|
284 > command = registrar.command(cmdtable) |
38074
5a3feb2bc9dd
py3: add b'' prefixes in tests/test-pager.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
37598
diff
changeset
|
285 > @command(b'fortytwo', [], b'fortytwo', norepo=True) |
29344 | 286 > def fortytwo(ui, *opts): |
38074
5a3feb2bc9dd
py3: add b'' prefixes in tests/test-pager.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
37598
diff
changeset
|
287 > ui.write(b'42\n') |
29344 | 288 > return 42 |
289 > EOF | |
290 | |
291 $ cat >> $HGRCPATH <<'EOF' | |
292 > [extensions] | |
293 > fortytwo = $TESTTMP/fortytwo.py | |
294 > EOF | |
295 | |
296 $ hg fortytwo --pager=on | |
297 paged! '42\n' | |
298 [42] | |
30999
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
299 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
300 A command that asks for paging using ui.pager() directly works: |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
301 $ hg blame a |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
302 paged! ' 0: a\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
303 paged! ' 1: a 1\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
304 paged! ' 2: a 2\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
305 paged! ' 3: a 3\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
306 paged! ' 4: a 4\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
307 paged! ' 5: a 5\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
308 paged! ' 6: a 6\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
309 paged! ' 7: a 7\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
310 paged! ' 8: a 8\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
311 paged! ' 9: a 9\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
312 paged! '10: a 10\n' |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
313 but not with HGPLAIN |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
314 $ HGPLAIN=1 hg blame a |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
315 0: a |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
316 1: a 1 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
317 2: a 2 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
318 3: a 3 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
319 4: a 4 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
320 5: a 5 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
321 6: a 6 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
322 7: a 7 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
323 8: a 8 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
324 9: a 9 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
325 10: a 10 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
326 explicit flags work too: |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
327 $ hg blame --pager=no a |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
328 0: a |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
329 1: a 1 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
330 2: a 2 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
331 3: a 3 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
332 4: a 4 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
333 5: a 5 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
334 6: a 6 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
335 7: a 7 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
336 8: a 8 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
337 9: a 9 |
334cf948c758
annotate: migrate to modern pager API
Augie Fackler <augie@google.com>
parents:
30996
diff
changeset
|
338 10: a 10 |
31000
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
339 |
32541
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
340 A command with --output option: |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
341 |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
342 $ hg cat -r0 a |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
343 paged! 'a\n' |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
344 $ hg cat -r0 a --output=- |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
345 paged! 'a\n' |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
346 $ hg cat -r0 a --output=out |
37598
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
347 |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
348 $ hg export -r0 |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
349 paged! '# HG changeset patch\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
350 paged! '# User test\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
351 paged! '# Date 0 0\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
352 paged! '# Thu Jan 01 00:00:00 1970 +0000\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
353 paged! '# Node ID 1f0dee641bb7258c56bd60e93edfa2405381c41e\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
354 paged! '# Parent 0000000000000000000000000000000000000000\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
355 paged! 'add a\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
356 paged! '\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
357 paged! '\x1b[0;1mdiff -r 000000000000 -r 1f0dee641bb7 a\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
358 paged! '\x1b[0;31;1m--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
359 paged! '\x1b[0;32;1m+++ b/a\tThu Jan 01 00:00:00 1970 +0000\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
360 paged! '\x1b[0;35m@@ -0,0 +1,1 @@\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
361 paged! '\x1b[0;32m+a\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
362 $ hg export -r0 -o - |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
363 paged! '# HG changeset patch\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
364 paged! '# User test\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
365 paged! '# Date 0 0\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
366 paged! '# Thu Jan 01 00:00:00 1970 +0000\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
367 paged! '# Node ID 1f0dee641bb7258c56bd60e93edfa2405381c41e\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
368 paged! '# Parent 0000000000000000000000000000000000000000\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
369 paged! 'add a\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
370 paged! '\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
371 paged! '\x1b[0;1mdiff -r 000000000000 -r 1f0dee641bb7 a\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
372 paged! '\x1b[0;31;1m--- /dev/null\tThu Jan 01 00:00:00 1970 +0000\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
373 paged! '\x1b[0;32;1m+++ b/a\tThu Jan 01 00:00:00 1970 +0000\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
374 paged! '\x1b[0;35m@@ -0,0 +1,1 @@\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
375 paged! '\x1b[0;32m+a\x1b[0m\n' |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
376 $ hg export -r0 -o out |
7a9c905e51f9
export: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
34791
diff
changeset
|
377 |
32541
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
378 $ rm out |
3b569745af6c
cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org>
parents:
32337
diff
changeset
|
379 |
31000
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
380 Put annotate in the ignore list for pager: |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
381 $ cat >> $HGRCPATH <<EOF |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
382 > [pager] |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
383 > ignore = annotate |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
384 > EOF |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
385 $ hg blame a |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
386 0: a |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
387 1: a 1 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
388 2: a 2 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
389 3: a 3 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
390 4: a 4 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
391 5: a 5 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
392 6: a 6 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
393 7: a 7 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
394 8: a 8 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
395 9: a 9 |
84ec2d6a2831
tests: prove that ignore works
Augie Fackler <augie@google.com>
parents:
30999
diff
changeset
|
396 10: a 10 |
31954
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
397 |
34021
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
398 During pushbuffer, pager should not start: |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
399 $ cat > $TESTTMP/pushbufferpager.py <<EOF |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
400 > def uisetup(ui): |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
401 > ui.pushbuffer() |
38074
5a3feb2bc9dd
py3: add b'' prefixes in tests/test-pager.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
37598
diff
changeset
|
402 > ui.pager(b'mycmd') |
5a3feb2bc9dd
py3: add b'' prefixes in tests/test-pager.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
37598
diff
changeset
|
403 > ui.write(b'content\n') |
34021
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
404 > ui.write(ui.popbuffer()) |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
405 > EOF |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
406 |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
407 $ echo append >> a |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
408 $ hg --config extensions.pushbuffer=$TESTTMP/pushbufferpager.py status --color=off |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
409 content |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
410 paged! 'M a\n' |
31a2eb0f74e5
pager: do not start pager if `ui` has been `pushbuffer`-ed
Jun Wu <quark@fb.com>
parents:
33971
diff
changeset
|
411 |
31954
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
412 Environment variables like LESS and LV are set automatically: |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
413 $ cat > $TESTTMP/printlesslv.py <<EOF |
33971
dcfa83652744
tests: update test-pager to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33620
diff
changeset
|
414 > import os |
dcfa83652744
tests: update test-pager to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33620
diff
changeset
|
415 > import sys |
31954
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
416 > sys.stdin.read() |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
417 > for name in ['LESS', 'LV']: |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
418 > sys.stdout.write(('%s=%s\n') % (name, os.environ.get(name, '-'))) |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
419 > sys.stdout.flush() |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
420 > EOF |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
421 |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
422 $ cat >> $HGRCPATH <<EOF |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
423 > [alias] |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
424 > noop = log -r 0 -T '' |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
425 > [ui] |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
426 > formatted=1 |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
427 > [pager] |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38074
diff
changeset
|
428 > pager = "$PYTHON" $TESTTMP/printlesslv.py |
31954
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
429 > EOF |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
430 $ unset LESS |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
431 $ unset LV |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
432 $ hg noop --pager=on |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
433 LESS=FRX |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
434 LV=-c |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
435 $ LESS=EFGH hg noop --pager=on |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
436 LESS=EFGH |
e518192d6bac
pager: set some environment variables if they're not set
Jun Wu <quark@fb.com>
parents:
31478
diff
changeset
|
437 LV=-c |