28319
|
1 |
$ cat >> fakepager.py <<EOF
|
|
2 |
> import sys
|
|
3 |
> for line in sys.stdin:
|
|
4 |
> sys.stdout.write('paged! %r\n' % line)
|
|
5 |
> EOF
|
|
6 |
|
|
7 |
Enable ui.formatted because pager won't fire without it, and set up
|
|
8 |
pager and tell it to use our fake pager that lets us see when the
|
|
9 |
pager was running.
|
|
10 |
$ cat >> $HGRCPATH <<EOF
|
|
11 |
> [ui]
|
|
12 |
> formatted = yes
|
|
13 |
> [extensions]
|
|
14 |
> pager=
|
|
15 |
> [pager]
|
|
16 |
> pager = python $TESTTMP/fakepager.py
|
|
17 |
> EOF
|
|
18 |
|
|
19 |
$ hg init repo
|
|
20 |
$ cd repo
|
|
21 |
$ echo a >> a
|
|
22 |
$ hg add a
|
|
23 |
$ hg ci -m 'add a'
|
|
24 |
$ for x in `python $TESTDIR/seq.py 1 10`; do
|
|
25 |
> echo a $x >> a
|
|
26 |
> hg ci -m "modify a $x"
|
|
27 |
> done
|
|
28 |
|
|
29 |
By default diff and log are paged, but summary is not:
|
|
30 |
|
|
31 |
$ hg diff -c 2 --pager=yes
|
|
32 |
paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
|
|
33 |
paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\n'
|
|
34 |
paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n'
|
|
35 |
paged! '@@ -1,2 +1,3 @@\n'
|
|
36 |
paged! ' a\n'
|
|
37 |
paged! ' a 1\n'
|
|
38 |
paged! '+a 2\n'
|
|
39 |
|
|
40 |
$ hg log --limit 2
|
|
41 |
paged! 'changeset: 10:46106edeeb38\n'
|
|
42 |
paged! 'tag: tip\n'
|
|
43 |
paged! 'user: test\n'
|
|
44 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
45 |
paged! 'summary: modify a 10\n'
|
|
46 |
paged! '\n'
|
|
47 |
paged! 'changeset: 9:6dd8ea7dd621\n'
|
|
48 |
paged! 'user: test\n'
|
|
49 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
50 |
paged! 'summary: modify a 9\n'
|
|
51 |
paged! '\n'
|
|
52 |
|
|
53 |
$ hg summary
|
|
54 |
parent: 10:46106edeeb38 tip
|
|
55 |
modify a 10
|
|
56 |
branch: default
|
|
57 |
commit: (clean)
|
|
58 |
update: (current)
|
|
59 |
phases: 11 draft
|
|
60 |
|
|
61 |
We can enable the pager on summary:
|
|
62 |
|
|
63 |
$ hg --config pager.attend-summary=yes summary
|
|
64 |
paged! 'parent: 10:46106edeeb38 tip\n'
|
|
65 |
paged! ' modify a 10\n'
|
|
66 |
paged! 'branch: default\n'
|
|
67 |
paged! 'commit: (clean)\n'
|
|
68 |
paged! 'update: (current)\n'
|
|
69 |
paged! 'phases: 11 draft\n'
|
|
70 |
|
|
71 |
If we completely change the attend list that's respected:
|
|
72 |
|
|
73 |
$ hg --config pager.attend-diff=no diff -c 2
|
|
74 |
diff -r f4be7687d414 -r bce265549556 a
|
|
75 |
--- a/a Thu Jan 01 00:00:00 1970 +0000
|
|
76 |
+++ b/a Thu Jan 01 00:00:00 1970 +0000
|
|
77 |
@@ -1,2 +1,3 @@
|
|
78 |
a
|
|
79 |
a 1
|
|
80 |
+a 2
|
|
81 |
|
|
82 |
$ hg --config pager.attend=summary diff -c 2
|
|
83 |
diff -r f4be7687d414 -r bce265549556 a
|
|
84 |
--- a/a Thu Jan 01 00:00:00 1970 +0000
|
|
85 |
+++ b/a Thu Jan 01 00:00:00 1970 +0000
|
|
86 |
@@ -1,2 +1,3 @@
|
|
87 |
a
|
|
88 |
a 1
|
|
89 |
+a 2
|
|
90 |
|
|
91 |
If 'log' is in attend, then 'history' should also be paged:
|
|
92 |
$ hg history --limit 2 --config pager.attend=log
|
|
93 |
paged! 'changeset: 10:46106edeeb38\n'
|
|
94 |
paged! 'tag: tip\n'
|
|
95 |
paged! 'user: test\n'
|
|
96 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
97 |
paged! 'summary: modify a 10\n'
|
|
98 |
paged! '\n'
|
|
99 |
paged! 'changeset: 9:6dd8ea7dd621\n'
|
|
100 |
paged! 'user: test\n'
|
|
101 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
102 |
paged! 'summary: modify a 9\n'
|
|
103 |
paged! '\n'
|
|
104 |
|
|
105 |
Possible bug: history is explicitly ignored in pager config, but
|
|
106 |
because log is in the attend list it still gets pager treatment.
|
|
107 |
|
|
108 |
$ hg history --limit 2 --config pager.attend=log \
|
|
109 |
> --config pager.ignore=history
|
|
110 |
paged! 'changeset: 10:46106edeeb38\n'
|
|
111 |
paged! 'tag: tip\n'
|
|
112 |
paged! 'user: test\n'
|
|
113 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
114 |
paged! 'summary: modify a 10\n'
|
|
115 |
paged! '\n'
|
|
116 |
paged! 'changeset: 9:6dd8ea7dd621\n'
|
|
117 |
paged! 'user: test\n'
|
|
118 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
119 |
paged! 'summary: modify a 9\n'
|
|
120 |
paged! '\n'
|
|
121 |
|
|
122 |
Possible bug: history is explicitly marked as attend-history=no, but
|
|
123 |
it doesn't fail to get paged because log is still in the attend list.
|
|
124 |
|
|
125 |
$ hg history --limit 2 --config pager.attend-history=no
|
|
126 |
paged! 'changeset: 10:46106edeeb38\n'
|
|
127 |
paged! 'tag: tip\n'
|
|
128 |
paged! 'user: test\n'
|
|
129 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
130 |
paged! 'summary: modify a 10\n'
|
|
131 |
paged! '\n'
|
|
132 |
paged! 'changeset: 9:6dd8ea7dd621\n'
|
|
133 |
paged! 'user: test\n'
|
|
134 |
paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
|
|
135 |
paged! 'summary: modify a 9\n'
|
|
136 |
paged! '\n'
|
|
137 |
|
|
138 |
Possible bug: disabling pager for log but enabling it for history
|
|
139 |
doesn't result in history being paged.
|
|
140 |
|
|
141 |
$ hg history --limit 2 --config pager.attend-log=no \
|
|
142 |
> --config pager.attend-history=yes
|
|
143 |
changeset: 10:46106edeeb38
|
|
144 |
tag: tip
|
|
145 |
user: test
|
|
146 |
date: Thu Jan 01 00:00:00 1970 +0000
|
|
147 |
summary: modify a 10
|
|
148 |
|
|
149 |
changeset: 9:6dd8ea7dd621
|
|
150 |
user: test
|
|
151 |
date: Thu Jan 01 00:00:00 1970 +0000
|
|
152 |
summary: modify a 9
|
|
153 |
|