Comments
Patch
copy from tests/test-pager.t
copy to tests/test-pager-legacy.t
@@ -26,7 +26,7 @@
> hg ci -m "modify a $x"
> done
-By default diff and log are paged, but id is not:
+By default diff and log are paged, but summary is not:
$ hg diff -c 2 --pager=yes
paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
@@ -50,16 +50,24 @@
paged! 'summary: modify a 9\n'
paged! '\n'
- $ hg id
- 46106edeeb38 tip
-
-We can enable the pager on id:
+BROKEN: should not be paged by default
+ $ hg summary
+ paged! 'parent: 10:46106edeeb38 tip\n'
+ paged! ' modify a 10\n'
+ paged! 'branch: default\n'
+ paged! 'commit: (clean)\n'
+ paged! 'update: (current)\n'
+ paged! 'phases: 11 draft\n'
- $ hg --config pager.attend-id=yes id
- paged! '46106edeeb38 tip\n'
+We can enable the pager on summary:
-Setting attend-$COMMAND to a false value works, even with pager in
-core:
+ $ hg --config pager.attend-summary=yes summary
+ paged! 'parent: 10:46106edeeb38 tip\n'
+ paged! ' modify a 10\n'
+ paged! 'branch: default\n'
+ paged! 'commit: (clean)\n'
+ paged! 'update: (current)\n'
+ paged! 'phases: 11 draft\n'
$ hg --config pager.attend-diff=no diff -c 2
diff -r f4be7687d414 -r bce265549556 a
@@ -70,6 +78,17 @@
a 1
+a 2
+If we completely change the attend list that's respected:
+BROKEN: diff should not be paged
+ $ hg --config pager.attend=summary diff -c 2
+ paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
+ paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\n'
+ paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n'
+ paged! '@@ -1,2 +1,3 @@\n'
+ paged! ' a\n'
+ paged! ' a 1\n'
+ paged! '+a 2\n'
+
If 'log' is in attend, then 'history' should also be paged:
$ hg history --limit 2 --config pager.attend=log
paged! 'changeset: 10:46106edeeb38\n'
@@ -84,17 +103,60 @@
paged! 'summary: modify a 9\n'
paged! '\n'
+Possible bug: history is explicitly ignored in pager config, but
+because log is in the attend list it still gets pager treatment.
+
+ $ hg history --limit 2 --config pager.attend=log \
+ > --config pager.ignore=history
+ paged! 'changeset: 10:46106edeeb38\n'
+ paged! 'tag: tip\n'
+ paged! 'user: test\n'
+ paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
+ paged! 'summary: modify a 10\n'
+ paged! '\n'
+ paged! 'changeset: 9:6dd8ea7dd621\n'
+ paged! 'user: test\n'
+ paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
+ paged! 'summary: modify a 9\n'
+ paged! '\n'
+
+Possible bug: history is explicitly marked as attend-history=no, but
+it doesn't fail to get paged because log is still in the attend list.
+
+ $ hg history --limit 2 --config pager.attend-history=no
+ paged! 'changeset: 10:46106edeeb38\n'
+ paged! 'tag: tip\n'
+ paged! 'user: test\n'
+ paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
+ paged! 'summary: modify a 10\n'
+ paged! '\n'
+ paged! 'changeset: 9:6dd8ea7dd621\n'
+ paged! 'user: test\n'
+ paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
+ paged! 'summary: modify a 9\n'
+ paged! '\n'
+
+Possible bug: disabling pager for log but enabling it for history
+doesn't result in history being paged.
+
+ $ hg history --limit 2 --config pager.attend-log=no \
+ > --config pager.attend-history=yes
+ changeset: 10:46106edeeb38
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: modify a 10
+
+ changeset: 9:6dd8ea7dd621
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: modify a 9
+
Pager should not start if stdout is not a tty.
$ hg log -l1 -q --config ui.formatted=False
10:46106edeeb38
-Pager should be disabled if pager.pager is empty (otherwise the output would
-be silently lost.)
-
- $ hg log -l1 -q --config pager.pager=
- 10:46106edeeb38
-
Pager with color enabled allows colors to come through by default,
even though stdout is no longer a tty.
$ cat >> $HGRCPATH <<EOF
@@ -170,61 +232,3 @@
$ hg fortytwo --pager=on
paged! '42\n'
[42]
-
-A command that asks for paging using ui.pager() directly works:
- $ hg blame a
- paged! ' 0: a\n'
- paged! ' 1: a 1\n'
- paged! ' 2: a 2\n'
- paged! ' 3: a 3\n'
- paged! ' 4: a 4\n'
- paged! ' 5: a 5\n'
- paged! ' 6: a 6\n'
- paged! ' 7: a 7\n'
- paged! ' 8: a 8\n'
- paged! ' 9: a 9\n'
- paged! '10: a 10\n'
-but not with HGPLAIN
- $ HGPLAIN=1 hg blame a
- 0: a
- 1: a 1
- 2: a 2
- 3: a 3
- 4: a 4
- 5: a 5
- 6: a 6
- 7: a 7
- 8: a 8
- 9: a 9
- 10: a 10
-explicit flags work too:
- $ hg blame --pager=no a
- 0: a
- 1: a 1
- 2: a 2
- 3: a 3
- 4: a 4
- 5: a 5
- 6: a 6
- 7: a 7
- 8: a 8
- 9: a 9
- 10: a 10
-
-Put annotate in the ignore list for pager:
- $ cat >> $HGRCPATH <<EOF
- > [pager]
- > ignore = annotate
- > EOF
- $ hg blame a
- 0: a
- 1: a 1
- 2: a 2
- 3: a 3
- 4: a 4
- 5: a 5
- 6: a 6
- 7: a 7
- 8: a 8
- 9: a 9
- 10: a 10
@@ -10,8 +10,6 @@
$ cat >> $HGRCPATH <<EOF
> [ui]
> formatted = yes
- > [extensions]
- > pager=
> [pager]
> pager = python $TESTTMP/fakepager.py
> EOF
@@ -55,12 +53,12 @@
We can enable the pager on id:
+BROKEN: should be paged
$ hg --config pager.attend-id=yes id
- paged! '46106edeeb38 tip\n'
+ 46106edeeb38 tip
Setting attend-$COMMAND to a false value works, even with pager in
core:
-
$ hg --config pager.attend-diff=no diff -c 2
diff -r f4be7687d414 -r bce265549556 a
--- a/a Thu Jan 01 00:00:00 1970 +0000
@@ -130,8 +128,9 @@
$ hg echoa
a
+BROKEN: should be paged
$ hg --config pager.attend-echoa=yes echoa
- paged! 'a\n'
+ a
Pager works with hg aliases including environment variables.