tests/test-pager.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 21 Feb 2024 10:41:09 +0100
changeset 51409 2f39c7aeb549
parent 48876 42d2b31cee0b
permissions -rw-r--r--
phases: large rewrite on retract boundary The new code is still pure Python, so we still have room to going significantly faster. However its complexity of the complex part is `O(|[min_new_draft, tip]|)` instead of `O(|[min_draft, tip]|` which should help tremendously one repository with old draft (like mercurial-devel or mozilla-try). This is especially useful as the most common "retract boundary" operation happens when we commit/rewrite new drafts or when we push new draft to a non-publishing server. In this case, the smallest new_revs is very close to the tip and there is very few work to do. A few smaller optimisation could be done for these cases and will be introduced in later changesets. We still have iterate over large sets of roots, but this is already a great improvement for a very small amount of work. We gather information on the affected changeset as we go as we can put it to use in the next changesets. This extra data collection might slowdown the `register_new` case a bit, however for register_new, it should not really matters. The set of new nodes is either small, so the impact is negligible, or the set of new nodes is large, and the amount of work to do to had them will dominate the overhead the collecting information in `changed_revs`. As this new code compute the changes on the fly, it unlock other interesting improvement to be done in later changeset.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28319
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
  $ cat >> fakepager.py <<EOF
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
     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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
  > for line in sys.stdin:
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
     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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
  > EOF
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
Enable ui.formatted because pager won't fire without it, and set up
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
pager and tell it to use our fake pager that lets us see when the
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
pager was running.
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
  $ cat >> $HGRCPATH <<EOF
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
  > [ui]
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
  > EOF
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
  $ hg init repo
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
  $ cd repo
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
  $ echo a >> a
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
  $ hg add a
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    28
  >   echo a $x >> a
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    29
  >   hg ci -m "modify a $x"
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    30
  > done
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    33
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    34
  $ hg diff -c 2 --pager=yes
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
  paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    36
  paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    37
  paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    38
  paged! '@@ -1,2 +1,3 @@\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    39
  paged! ' a\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    40
  paged! ' a 1\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    41
  paged! '+a 2\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    42
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    43
  $ hg log --limit 2
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    44
  paged! 'changeset:   10:46106edeeb38\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    45
  paged! 'tag:         tip\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    46
  paged! 'user:        test\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    47
  paged! 'date:        Thu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    48
  paged! 'summary:     modify a 10\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    49
  paged! '\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    50
  paged! 'changeset:   9:6dd8ea7dd621\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    51
  paged! 'user:        test\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    52
  paged! 'date:        Thu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    53
  paged! 'summary:     modify a 9\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    54
  paged! '\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
    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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   119
  $ hg --config pager.attend-diff=no diff -c 2
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   120
  diff -r f4be7687d414 -r bce265549556 a
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   121
  --- a/a	Thu Jan 01 00:00:00 1970 +0000
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   122
  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   123
  @@ -1,2 +1,3 @@
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   124
   a
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   125
   a 1
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   126
  +a 2
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   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
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   131
  paged! 'changeset:   10:46106edeeb38\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
  paged! 'tag:         tip\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
  paged! 'user:        test\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
  paged! 'date:        Thu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
  paged! 'summary:     modify a 10\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   136
  paged! '\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
  paged! 'changeset:   9:6dd8ea7dd621\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
  paged! 'user:        test\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   139
  paged! 'date:        Thu Jan 01 00:00:00 1970 +0000\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   140
  paged! 'summary:     modify a 9\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   141
  paged! '\n'
09222d39fa34 pager: add tests
Augie Fackler <augie@google.com>
parents:
diff changeset
   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
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   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
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   279
Pager should not override the exit code of other commands
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   280
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   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
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   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
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   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
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   288
  >     return 42
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   289
  > EOF
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   290
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   291
  $ cat >> $HGRCPATH <<'EOF'
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   292
  > [extensions]
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   293
  > fortytwo = $TESTTMP/fortytwo.py
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   294
  > EOF
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   295
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   296
  $ hg fortytwo --pager=on
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   297
  paged! '42\n'
bb3d5c20eaf6 chg: exec pager in child process
Jun Wu <quark@fb.com>
parents: 29343
diff changeset
   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