tests/test-extension.t
author Martin von Zweigbergk <martinvonz@google.com>
Sun, 02 Dec 2018 13:45:20 -0800
changeset 40815 e115a6452b41
parent 40763 c93d046d4300
child 40890 07e181ed82ef
permissions -rw-r--r--
match: use _BASE_SIZE instead of magic value 4 Differential Revision: https://phab.mercurial-scm.org/D5351
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
     1
Test basic extension support
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     2
  $ cat > unflush.py <<EOF
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     3
  > import sys
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     4
  > from mercurial import pycompat
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     5
  > if pycompat.ispy3:
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     6
  >     # no changes required
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     7
  >     sys.exit(0)
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     8
  > with open(sys.argv[1], 'rb') as f:
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
     9
  >     data = f.read()
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
    10
  > with open(sys.argv[1], 'wb') as f:
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
    11
  >     f.write(data.replace(b', flush=True', b''))
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
    12
  > EOF
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    13
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    14
  $ cat > foobar.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    15
  > import os
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
    16
  > from mercurial import commands, registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
    17
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
    18
  > command = registrar.command(cmdtable)
33139
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    19
  > configtable = {}
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    20
  > configitem = registrar.configitem(configtable)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    21
  > configitem(b'tests', b'foo', default=b"Foo")
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    22
  > def uisetup(ui):
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    23
  >     ui.debug(b"uisetup called [debug]\\n")
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    24
  >     ui.write(b"uisetup called\\n")
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    25
  >     ui.status(b"uisetup called [status]\\n")
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
    26
  >     ui.flush()
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    27
  > def uipopulate(ui):
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    28
  >     ui._populatecnt = getattr(ui, "_populatecnt", 0) + 1
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    29
  >     ui.write(b"uipopulate called (%d times)\n" % ui._populatecnt)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    30
  > def reposetup(ui, repo):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    31
  >     ui.write(b"reposetup called for %s\\n" % os.path.basename(repo.root))
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    32
  >     ui.write(b"ui %s= repo.ui\\n" % (ui == repo.ui and b"=" or b"!"))
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
    33
  >     ui.flush()
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    34
  > @command(b'foo', [], b'hg foo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    35
  > def foo(ui, *args, **kwargs):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    36
  >     foo = ui.config(b'tests', b'foo')
33139
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    37
  >     ui.write(foo)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    38
  >     ui.write(b"\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    39
  > @command(b'bar', [], b'hg bar', norepo=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    40
  > def bar(ui, *args, **kwargs):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    41
  >     ui.write(b"Bar\\n")
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    42
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    43
  $ abspath=`pwd`/foobar.py
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    44
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    45
  $ mkdir barfoo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    46
  $ cp foobar.py barfoo/__init__.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    47
  $ barfoopath=`pwd`/barfoo
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    48
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    49
  $ hg init a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    50
  $ cd a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    51
  $ echo foo > file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    52
  $ hg add file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    53
  $ hg commit -m 'add file'
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    54
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    55
  $ echo '[extensions]' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    56
  $ echo "foobar = $abspath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    57
  $ hg foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    58
  uisetup called
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    59
  uisetup called [status]
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    60
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    61
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    62
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    63
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    64
  ui == repo.ui
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    65
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    66
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    67
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    68
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    69
  uipopulate called (1 times) (chg !)
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
    70
  reposetup called for a (chg !)
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
    71
  ui == repo.ui (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    72
  Foo
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    73
  $ hg foo --quiet
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    74
  uisetup called (no-chg !)
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    75
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    76
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    77
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    78
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    79
  uipopulate called (1 times) (chg !)
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    80
  reposetup called for a (chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    81
  ui == repo.ui
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    82
  Foo
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    83
  $ hg foo --debug
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    84
  uisetup called [debug] (no-chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    85
  uisetup called (no-chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    86
  uisetup called [status] (no-chg !)
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    87
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    88
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    89
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    90
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
    91
  uipopulate called (1 times) (chg !)
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    92
  reposetup called for a (chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    93
  ui == repo.ui
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    94
  Foo
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    95
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    96
  $ cd ..
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    97
  $ hg clone a b
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
    98
  uisetup called (no-chg !)
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    99
  uisetup called [status] (no-chg !)
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   100
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   101
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   102
  uipopulate called (1 times) (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   103
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   104
  ui == repo.ui
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   105
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   106
  reposetup called for b
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   107
  ui == repo.ui
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   108
  updating to branch default
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   109
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4569
622d8ed78b47 extensions: load modules in module/__init__.py form.
Brendan Cully <brendan@kublai.com>
parents: 4074
diff changeset
   110
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   111
  $ hg bar
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
   112
  uisetup called (no-chg !)
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
   113
  uisetup called [status] (no-chg !)
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   114
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   115
  uipopulate called (1 times) (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   116
  Bar
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   117
  $ echo 'foobar = !' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   118
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   119
module/__init__.py-style
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   120
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   121
  $ echo "barfoo = $barfoopath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   122
  $ cd a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   123
  $ hg foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   124
  uisetup called
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
   125
  uisetup called [status]
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   126
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   127
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   128
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   129
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   130
  ui == repo.ui
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   131
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   132
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   133
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   134
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   135
  uipopulate called (1 times) (chg !)
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
   136
  reposetup called for a (chg !)
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34065
diff changeset
   137
  ui == repo.ui (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   138
  Foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   139
  $ echo 'barfoo = !' >> $HGRCPATH
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   140
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   141
Check that extensions are loaded in phases:
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   142
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   143
  $ cat > foo.py <<EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   144
  > from __future__ import print_function
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   145
  > import os
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   146
  > name = os.path.basename(__file__).rsplit('.', 1)[0]
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   147
  > print("1) %s imported" % name, flush=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   148
  > def uisetup(ui):
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   149
  >     print("2) %s uisetup" % name, flush=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   150
  > def extsetup():
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   151
  >     print("3) %s extsetup" % name, flush=True)
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   152
  > def uipopulate(ui):
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   153
  >     print("4) %s uipopulate" % name, flush=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   154
  > def reposetup(ui, repo):
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   155
  >     print("5) %s reposetup" % name, flush=True)
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   156
  > 
39746
65b39c556c6d py3: encode the name to bytes before using in revsetpredicate()
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39741
diff changeset
   157
  > bytesname = name.encode('utf-8')
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   158
  > # custom predicate to check registration of functions at loading
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   159
  > from mercurial import (
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   160
  >     registrar,
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   161
  >     smartset,
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   162
  > )
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   163
  > revsetpredicate = registrar.revsetpredicate()
39746
65b39c556c6d py3: encode the name to bytes before using in revsetpredicate()
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39741
diff changeset
   164
  > @revsetpredicate(bytesname, safe=True) # safe=True for query via hgweb
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   165
  > def custompredicate(repo, subset, x):
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   166
  >     return smartset.baseset([r for r in subset if r in {0}])
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   167
  > EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   168
  $ $PYTHON $TESTTMP/unflush.py foo.py
4569
622d8ed78b47 extensions: load modules in module/__init__.py form.
Brendan Cully <brendan@kublai.com>
parents: 4074
diff changeset
   169
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   170
  $ cp foo.py bar.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   171
  $ echo 'foo = foo.py' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   172
  $ echo 'bar = bar.py' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   173
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   174
Check normal command's load order of extensions and registration of functions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   175
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   176
  $ hg log -r "foo() and bar()" -q
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   177
  1) foo imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   178
  1) bar imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   179
  2) foo uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   180
  2) bar uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   181
  3) foo extsetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   182
  3) bar extsetup
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   183
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   184
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   185
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   186
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   187
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   188
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   189
  5) foo reposetup
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   190
  5) bar reposetup
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   191
  0:c24b9ac61126
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   192
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   193
Check hgweb's load order of extensions and registration of functions
4738
c41a404ac387 Handle extensions with defined but empty cmdtable
Brendan Cully <brendan@kublai.com>
parents: 4569
diff changeset
   194
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   195
  $ cat > hgweb.cgi <<EOF
32956
b6776b34e44e tests: use $PYTHON in #! so we always use the right Python
Augie Fackler <augie@google.com>
parents: 32777
diff changeset
   196
  > #!$PYTHON
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   197
  > from mercurial import demandimport; demandimport.enable()
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   198
  > from mercurial.hgweb import hgweb
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   199
  > from mercurial.hgweb import wsgicgi
39637
23b749b84b8a py3: call hgweb.hgweb() with bytes values
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39249
diff changeset
   200
  > application = hgweb(b'.', b'test repo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   201
  > wsgicgi.launch(application)
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   202
  > EOF
33111
4a8db3538c39 tests: use cgienv to minimize environment setup at hgweb tests
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33110
diff changeset
   203
  $ . "$TESTDIR/cgienv"
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   204
39723
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39637
diff changeset
   205
  $ PATH_INFO='/' SCRIPT_NAME='' "$PYTHON" hgweb.cgi \
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   206
  >    | grep '^[0-9]) ' # ignores HTML output
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   207
  1) foo imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   208
  1) bar imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   209
  2) foo uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   210
  2) bar uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   211
  3) foo extsetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   212
  3) bar extsetup
40763
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   213
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   214
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   215
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   216
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   217
  5) foo reposetup
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40515
diff changeset
   218
  5) bar reposetup
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   219
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   220
(check that revset predicate foo() and bar() are available)
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   221
33110
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   222
#if msys
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   223
  $ PATH_INFO='//shortlog'
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   224
#else
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   225
  $ PATH_INFO='/shortlog'
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   226
#endif
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33109
diff changeset
   227
  $ export PATH_INFO
39723
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39637
diff changeset
   228
  $ SCRIPT_NAME='' QUERY_STRING='rev=foo() and bar()' "$PYTHON" hgweb.cgi \
33064
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   229
  >     | grep '<a href="/rev/[0-9a-z]*">'
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   230
     <a href="/rev/c24b9ac61126">add file</a>
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32956
diff changeset
   231
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   232
  $ echo 'foo = !' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   233
  $ echo 'bar = !' >> $HGRCPATH
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   234
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   235
Check "from __future__ import absolute_import" support for external libraries
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   236
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   237
(import-checker.py reports issues for some of heredoc python code
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   238
fragments below, because import-checker.py does not know test specific
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   239
package hierarchy. NO_CHECK_* should be used as a limit mark of
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   240
heredoc, in order to make import-checker.py ignore them. For
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   241
simplicity, all python code fragments below are generated with such
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   242
limit mark, regardless of importing module or not.)
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   243
20001
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   244
#if windows
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   245
  $ PATHSEP=";"
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   246
#else
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   247
  $ PATHSEP=":"
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   248
#endif
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   249
  $ export PATHSEP
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   250
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   251
  $ mkdir $TESTTMP/libroot
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   252
  $ echo "s = 'libroot/ambig.py'" > $TESTTMP/libroot/ambig.py
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   253
  $ mkdir $TESTTMP/libroot/mod
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   254
  $ touch $TESTTMP/libroot/mod/__init__.py
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   255
  $ echo "s = 'libroot/mod/ambig.py'" > $TESTTMP/libroot/mod/ambig.py
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   256
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   257
  $ cat > $TESTTMP/libroot/mod/ambigabs.py <<NO_CHECK_EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   258
  > from __future__ import absolute_import, print_function
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   259
  > import ambig # should load "libroot/ambig.py"
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   260
  > s = ambig.s
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   261
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   262
  $ cat > loadabs.py <<NO_CHECK_EOF
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   263
  > import mod.ambigabs as ambigabs
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   264
  > def extsetup():
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   265
  >     print('ambigabs.s=%s' % ambigabs.s, flush=True)
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   266
  > NO_CHECK_EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   267
  $ $PYTHON $TESTTMP/unflush.py loadabs.py
20001
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   268
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}/libroot; hg --config extensions.loadabs=loadabs.py root)
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   269
  ambigabs.s=libroot/ambig.py
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   270
  $TESTTMP/a
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   271
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 40206
diff changeset
   272
#if no-py3
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   273
  $ cat > $TESTTMP/libroot/mod/ambigrel.py <<NO_CHECK_EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   274
  > from __future__ import print_function
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   275
  > import ambig # should load "libroot/mod/ambig.py"
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   276
  > s = ambig.s
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   277
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   278
  $ cat > loadrel.py <<NO_CHECK_EOF
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   279
  > import mod.ambigrel as ambigrel
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   280
  > def extsetup():
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   281
  >     print('ambigrel.s=%s' % ambigrel.s, flush=True)
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   282
  > NO_CHECK_EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
   283
  $ $PYTHON $TESTTMP/unflush.py loadrel.py
20001
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   284
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}/libroot; hg --config extensions.loadrel=loadrel.py root)
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   285
  ambigrel.s=libroot/mod/ambig.py
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   286
  $TESTTMP/a
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   287
#endif
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   288
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   289
Check absolute/relative import of extension specific modules
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   290
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   291
  $ mkdir $TESTTMP/extroot
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   292
  $ cat > $TESTTMP/extroot/bar.py <<NO_CHECK_EOF
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   293
  > s = b'this is extroot.bar'
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   294
  > NO_CHECK_EOF
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   295
  $ mkdir $TESTTMP/extroot/sub1
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   296
  $ cat > $TESTTMP/extroot/sub1/__init__.py <<NO_CHECK_EOF
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   297
  > s = b'this is extroot.sub1.__init__'
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   298
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   299
  $ cat > $TESTTMP/extroot/sub1/baz.py <<NO_CHECK_EOF
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   300
  > s = b'this is extroot.sub1.baz'
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   301
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   302
  $ cat > $TESTTMP/extroot/__init__.py <<NO_CHECK_EOF
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   303
  > from __future__ import absolute_import
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   304
  > s = b'this is extroot.__init__'
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   305
  > from . import foo
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   306
  > def extsetup(ui):
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   307
  >     ui.write(b'(extroot) ', foo.func(), b'\n')
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
   308
  >     ui.flush()
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   309
  > NO_CHECK_EOF
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   310
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   311
  $ cat > $TESTTMP/extroot/foo.py <<NO_CHECK_EOF
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   312
  > # test absolute import
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   313
  > buf = []
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   314
  > def func():
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   315
  >     # "not locals" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   316
  >     import extroot.bar
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   317
  >     buf.append(b'import extroot.bar in func(): %s' % extroot.bar.s)
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   318
  >     return b'\n(extroot) '.join(buf)
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   319
  > # b"fromlist == ('*',)" case
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   320
  > from extroot.bar import *
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   321
  > buf.append(b'from extroot.bar import *: %s' % s)
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   322
  > # "not fromlist" and "if '.' in name" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   323
  > import extroot.sub1.baz
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   324
  > buf.append(b'import extroot.sub1.baz: %s' % extroot.sub1.baz.s)
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   325
  > # "not fromlist" and NOT "if '.' in name" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   326
  > import extroot
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   327
  > buf.append(b'import extroot: %s' % extroot.s)
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   328
  > # NOT "not fromlist" and NOT "level != -1" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   329
  > from extroot.bar import s
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   330
  > buf.append(b'from extroot.bar import s: %s' % s)
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   331
  > NO_CHECK_EOF
27491
28c1aa12f5de test-extension: do not depend on demandimport (issue5012)
Jun Wu <quark@fb.com>
parents: 27152
diff changeset
   332
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.extroot=$TESTTMP/extroot root)
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   333
  (extroot) from extroot.bar import *: this is extroot.bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   334
  (extroot) import extroot.sub1.baz: this is extroot.sub1.baz
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   335
  (extroot) import extroot: this is extroot.__init__
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   336
  (extroot) from extroot.bar import s: this is extroot.bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   337
  (extroot) import extroot.bar in func(): this is extroot.bar
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   338
  $TESTTMP/a
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   339
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 40206
diff changeset
   340
#if no-py3
20002
83347ff50134 tests: quote environment variable to extract wildcard on MinGW environment
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20001
diff changeset
   341
  $ rm "$TESTTMP"/extroot/foo.*
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
   342
  $ rm -Rf "$TESTTMP/extroot/__pycache__"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   343
  $ cat > $TESTTMP/extroot/foo.py <<NO_CHECK_EOF
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   344
  > # test relative import
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   345
  > buf = []
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   346
  > def func():
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   347
  >     # "not locals" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   348
  >     import bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   349
  >     buf.append('import bar in func(): %s' % bar.s)
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   350
  >     return '\n(extroot) '.join(buf)
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   351
  > # "fromlist == ('*',)" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   352
  > from bar import *
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   353
  > buf.append('from bar import *: %s' % s)
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   354
  > # "not fromlist" and "if '.' in name" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   355
  > import sub1.baz
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   356
  > buf.append('import sub1.baz: %s' % sub1.baz.s)
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   357
  > # "not fromlist" and NOT "if '.' in name" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   358
  > import sub1
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   359
  > buf.append('import sub1: %s' % sub1.s)
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   360
  > # NOT "not fromlist" and NOT "level != -1" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   361
  > from bar import s
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   362
  > buf.append('from bar import s: %s' % s)
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   363
  > NO_CHECK_EOF
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   364
  $ hg --config extensions.extroot=$TESTTMP/extroot root
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   365
  (extroot) from bar import *: this is extroot.bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   366
  (extroot) import sub1.baz: this is extroot.sub1.baz
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   367
  (extroot) import sub1: this is extroot.sub1.__init__
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   368
  (extroot) from bar import s: this is extroot.bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   369
  (extroot) import bar in func(): this is extroot.bar
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   370
  $TESTTMP/a
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   371
#endif
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   372
33528
c384ac3ea147 tests: drop "absimport" conditionals which should be always true
Yuya Nishihara <yuya@tcha.org>
parents: 33287
diff changeset
   373
#if demandimport
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   374
30342
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30319
diff changeset
   375
Examine whether module loading is delayed until actual referring, even
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   376
though module is imported with "absolute_import" feature.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   377
30342
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30319
diff changeset
   378
Files below in each packages are used for described purpose:
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   379
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   380
- "called": examine whether "from MODULE import ATTR" works correctly
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   381
- "unused": examine whether loading is delayed correctly
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   382
- "used":   examine whether "from PACKAGE import MODULE" works correctly
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   383
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   384
Package hierarchy is needed to examine whether demand importing works
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   385
as expected for "from SUB.PACK.AGE import MODULE".
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   386
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   387
Setup "external library" to be imported with "absolute_import"
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   388
feature.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   389
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   390
  $ mkdir -p $TESTTMP/extlibroot/lsub1/lsub2
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   391
  $ touch $TESTTMP/extlibroot/__init__.py
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   392
  $ touch $TESTTMP/extlibroot/lsub1/__init__.py
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   393
  $ touch $TESTTMP/extlibroot/lsub1/lsub2/__init__.py
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   394
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   395
  $ cat > $TESTTMP/extlibroot/lsub1/lsub2/called.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   396
  > def func():
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   397
  >     return b"this is extlibroot.lsub1.lsub2.called.func()"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   398
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   399
  $ cat > $TESTTMP/extlibroot/lsub1/lsub2/unused.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   400
  > raise Exception("extlibroot.lsub1.lsub2.unused is loaded unintentionally")
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   401
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   402
  $ cat > $TESTTMP/extlibroot/lsub1/lsub2/used.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   403
  > detail = b"this is extlibroot.lsub1.lsub2.used"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   404
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   405
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   406
Setup sub-package of "external library", which causes instantiation of
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   407
demandmod in "recurse down the module chain" code path. Relative
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   408
importing with "absolute_import" feature isn't tested, because "level
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   409
>=1 " doesn't cause instantiation of demandmod.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   410
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   411
  $ mkdir -p $TESTTMP/extlibroot/recursedown/abs
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   412
  $ cat > $TESTTMP/extlibroot/recursedown/abs/used.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   413
  > detail = b"this is extlibroot.recursedown.abs.used"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   414
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   415
  $ cat > $TESTTMP/extlibroot/recursedown/abs/__init__.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   416
  > from __future__ import absolute_import
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   417
  > from extlibroot.recursedown.abs.used import detail
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   418
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   419
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   420
  $ mkdir -p $TESTTMP/extlibroot/recursedown/legacy
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   421
  $ cat > $TESTTMP/extlibroot/recursedown/legacy/used.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   422
  > detail = b"this is extlibroot.recursedown.legacy.used"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   423
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   424
  $ cat > $TESTTMP/extlibroot/recursedown/legacy/__init__.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   425
  > # legacy style (level == -1) import
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   426
  > from extlibroot.recursedown.legacy.used import detail
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   427
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   428
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   429
  $ cat > $TESTTMP/extlibroot/recursedown/__init__.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   430
  > from __future__ import absolute_import
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   431
  > from extlibroot.recursedown.abs import detail as absdetail
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   432
  > from .legacy import detail as legacydetail
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   433
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   434
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   435
Setup package that re-exports an attribute of its submodule as the same
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   436
name. This leaves 'shadowing.used' pointing to 'used.detail', but still
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   437
the submodule 'used' should be somehow accessible. (issue5617)
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   438
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   439
  $ mkdir -p $TESTTMP/extlibroot/shadowing
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   440
  $ cat > $TESTTMP/extlibroot/shadowing/used.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   441
  > detail = b"this is extlibroot.shadowing.used"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   442
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   443
  $ cat > $TESTTMP/extlibroot/shadowing/proxied.py <<NO_CHECK_EOF
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   444
  > from __future__ import absolute_import
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   445
  > from extlibroot.shadowing.used import detail
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   446
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   447
  $ cat > $TESTTMP/extlibroot/shadowing/__init__.py <<NO_CHECK_EOF
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   448
  > from __future__ import absolute_import
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   449
  > from .used import detail as used
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   450
  > NO_CHECK_EOF
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   451
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   452
Setup extension local modules to be imported with "absolute_import"
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   453
feature.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   454
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   455
  $ mkdir -p $TESTTMP/absextroot/xsub1/xsub2
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   456
  $ touch $TESTTMP/absextroot/xsub1/__init__.py
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   457
  $ touch $TESTTMP/absextroot/xsub1/xsub2/__init__.py
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   458
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   459
  $ cat > $TESTTMP/absextroot/xsub1/xsub2/called.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   460
  > def func():
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   461
  >     return b"this is absextroot.xsub1.xsub2.called.func()"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   462
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   463
  $ cat > $TESTTMP/absextroot/xsub1/xsub2/unused.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   464
  > raise Exception("absextroot.xsub1.xsub2.unused is loaded unintentionally")
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   465
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   466
  $ cat > $TESTTMP/absextroot/xsub1/xsub2/used.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   467
  > detail = b"this is absextroot.xsub1.xsub2.used"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   468
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   469
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   470
Setup extension local modules to examine whether demand importing
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   471
works as expected in "level > 1" case.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   472
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   473
  $ cat > $TESTTMP/absextroot/relimportee.py <<NO_CHECK_EOF
39741
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39723
diff changeset
   474
  > detail = b"this is absextroot.relimportee"
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   475
  > NO_CHECK_EOF
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   476
  $ cat > $TESTTMP/absextroot/xsub1/xsub2/relimporter.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   477
  > from __future__ import absolute_import
40183
0173ed47a873 tests: fix a repr on python3 in test-extension.t
Augie Fackler <augie@google.com>
parents: 40182
diff changeset
   478
  > from mercurial import pycompat
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   479
  > from ... import relimportee
40183
0173ed47a873 tests: fix a repr on python3 in test-extension.t
Augie Fackler <augie@google.com>
parents: 40182
diff changeset
   480
  > detail = b"this relimporter imports %r" % (
0173ed47a873 tests: fix a repr on python3 in test-extension.t
Augie Fackler <augie@google.com>
parents: 40182
diff changeset
   481
  >     pycompat.bytestr(relimportee.detail))
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   482
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   483
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   484
Setup modules, which actually import extension local modules at
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   485
runtime.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   486
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   487
  $ cat > $TESTTMP/absextroot/absolute.py << NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   488
  > from __future__ import absolute_import
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   489
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   490
  > # import extension local modules absolutely (level = 0)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   491
  > from absextroot.xsub1.xsub2 import used, unused
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   492
  > from absextroot.xsub1.xsub2.called import func
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   493
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   494
  > def getresult():
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   495
  >     result = []
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   496
  >     result.append(used.detail)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   497
  >     result.append(func())
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   498
  >     return result
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   499
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   500
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   501
  $ cat > $TESTTMP/absextroot/relative.py << NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   502
  > from __future__ import absolute_import
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   503
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   504
  > # import extension local modules relatively (level == 1)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   505
  > from .xsub1.xsub2 import used, unused
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   506
  > from .xsub1.xsub2.called import func
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   507
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   508
  > # import a module, which implies "importing with level > 1"
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   509
  > from .xsub1.xsub2 import relimporter
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   510
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   511
  > def getresult():
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   512
  >     result = []
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   513
  >     result.append(used.detail)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   514
  >     result.append(func())
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   515
  >     result.append(relimporter.detail)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   516
  >     return result
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   517
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   518
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   519
Setup main procedure of extension.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   520
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   521
  $ cat > $TESTTMP/absextroot/__init__.py <<NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   522
  > from __future__ import absolute_import
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   523
  > from mercurial import registrar
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   524
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   525
  > command = registrar.command(cmdtable)
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   526
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   527
  > # "absolute" and "relative" shouldn't be imported before actual
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   528
  > # command execution, because (1) they import same modules, and (2)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   529
  > # preceding import (= instantiate "demandmod" object instead of
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   530
  > # real "module" object) might hide problem of succeeding import.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   531
  > 
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33064
diff changeset
   532
  > @command(b'showabsolute', [], norepo=True)
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   533
  > def showabsolute(ui, *args, **opts):
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   534
  >     from absextroot import absolute
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   535
  >     ui.write(b'ABS: %s\n' % b'\nABS: '.join(absolute.getresult()))
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   536
  > 
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33064
diff changeset
   537
  > @command(b'showrelative', [], norepo=True)
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   538
  > def showrelative(ui, *args, **opts):
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   539
  >     from . import relative
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   540
  >     ui.write(b'REL: %s\n' % b'\nREL: '.join(relative.getresult()))
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   541
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   542
  > # import modules from external library
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   543
  > from extlibroot.lsub1.lsub2 import used as lused, unused as lunused
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   544
  > from extlibroot.lsub1.lsub2.called import func as lfunc
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   545
  > from extlibroot.recursedown import absdetail, legacydetail
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   546
  > from extlibroot.shadowing import proxied
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   547
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   548
  > def uisetup(ui):
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   549
  >     result = []
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   550
  >     result.append(lused.detail)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   551
  >     result.append(lfunc())
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   552
  >     result.append(absdetail)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   553
  >     result.append(legacydetail)
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   554
  >     result.append(proxied.detail)
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   555
  >     ui.write(b'LIB: %s\n' % b'\nLIB: '.join(result))
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   556
  > NO_CHECK_EOF
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   557
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   558
Examine module importing.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   559
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   560
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.absextroot=$TESTTMP/absextroot showabsolute)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   561
  LIB: this is extlibroot.lsub1.lsub2.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   562
  LIB: this is extlibroot.lsub1.lsub2.called.func()
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   563
  LIB: this is extlibroot.recursedown.abs.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   564
  LIB: this is extlibroot.recursedown.legacy.used
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   565
  LIB: this is extlibroot.shadowing.used
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   566
  ABS: this is absextroot.xsub1.xsub2.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   567
  ABS: this is absextroot.xsub1.xsub2.called.func()
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   568
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   569
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.absextroot=$TESTTMP/absextroot showrelative)
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   570
  LIB: this is extlibroot.lsub1.lsub2.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   571
  LIB: this is extlibroot.lsub1.lsub2.called.func()
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   572
  LIB: this is extlibroot.recursedown.abs.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   573
  LIB: this is extlibroot.recursedown.legacy.used
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   574
  LIB: this is extlibroot.shadowing.used
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   575
  REL: this is absextroot.xsub1.xsub2.used
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   576
  REL: this is absextroot.xsub1.xsub2.called.func()
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   577
  REL: this relimporter imports 'this is absextroot.relimportee'
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   578
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   579
Examine whether sub-module is imported relatively as expected.
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   580
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   581
See also issue5208 for detail about example case on Python 3.x.
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   582
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   583
  $ f -q $TESTTMP/extlibroot/lsub1/lsub2/notexist.py
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   584
  $TESTTMP/extlibroot/lsub1/lsub2/notexist.py: file not found
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   585
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   586
  $ cat > $TESTTMP/notexist.py <<NO_CHECK_EOF
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   587
  > text = 'notexist.py at root is loaded unintentionally\n'
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   588
  > NO_CHECK_EOF
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   589
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   590
  $ cat > $TESTTMP/checkrelativity.py <<NO_CHECK_EOF
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   591
  > from mercurial import registrar
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   592
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   593
  > command = registrar.command(cmdtable)
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   594
  > 
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   595
  > # demand import avoids failure of importing notexist here
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   596
  > import extlibroot.lsub1.lsub2.notexist
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   597
  > 
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33064
diff changeset
   598
  > @command(b'checkrelativity', [], norepo=True)
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   599
  > def checkrelativity(ui, *args, **opts):
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   600
  >     try:
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   601
  >         ui.write(extlibroot.lsub1.lsub2.notexist.text)
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   602
  >         return 1 # unintentional success
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   603
  >     except ImportError:
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   604
  >         pass # intentional failure
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   605
  > NO_CHECK_EOF
29748
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   606
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   607
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.checkrelativity=$TESTTMP/checkrelativity.py checkrelativity)
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   608
34844
f0a62afd1e40 tests: move baduisetup() test out of "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 34843
diff changeset
   609
#endif
f0a62afd1e40 tests: move baduisetup() test out of "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 34843
diff changeset
   610
40206
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   611
(Here, module importing tests are finished. Therefore, use other than
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   612
NO_CHECK_* limit mark for heredoc python files, in order to apply
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   613
import-checker.py or so on their contents)
37295cee1a15 tests: use NO_CHECK_EOF for fragments used to test importing via extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40205
diff changeset
   614
33957
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   615
Make sure a broken uisetup doesn't globally break hg:
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   616
  $ cat > $TESTTMP/baduisetup.py <<EOF
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   617
  > def uisetup(ui):
34843
df871c41bd00 tests: make test-extension.t's baduisetup.py test fail even if bdiff exists
Martin von Zweigbergk <martinvonz@google.com>
parents: 34841
diff changeset
   618
  >     1/0
33957
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   619
  > EOF
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   620
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   621
Even though the extension fails during uisetup, hg is still basically usable:
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   622
  $ hg --config extensions.baduisetup=$TESTTMP/baduisetup.py version
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   623
  Traceback (most recent call last):
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   624
    File "*/mercurial/extensions.py", line *, in _runuisetup (glob)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   625
      uisetup(ui)
34843
df871c41bd00 tests: make test-extension.t's baduisetup.py test fail even if bdiff exists
Martin von Zweigbergk <martinvonz@google.com>
parents: 34841
diff changeset
   626
    File "$TESTTMP/baduisetup.py", line 2, in uisetup
df871c41bd00 tests: make test-extension.t's baduisetup.py test fail even if bdiff exists
Martin von Zweigbergk <martinvonz@google.com>
parents: 34841
diff changeset
   627
      1/0
40184
c3b7d9c54edd tests: glob away some annoying py3 differences
Augie Fackler <augie@google.com>
parents: 40183
diff changeset
   628
  ZeroDivisionError: * by zero (glob)
c3b7d9c54edd tests: glob away some annoying py3 differences
Augie Fackler <augie@google.com>
parents: 40183
diff changeset
   629
  *** failed to set up extension baduisetup: * by zero (glob)
33957
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   630
  Mercurial Distributed SCM (version *) (glob)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   631
  (see https://mercurial-scm.org for more information)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   632
  
35773
eb878d863195 tests: glob copyright years in test-extension.t
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
   633
  Copyright (C) 2005-* Matt Mackall and others (glob)
33957
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   634
  This is free software; see the source for copying conditions. There is NO
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   635
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
   636
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   637
  $ cd ..
9661
c4f6c02e33c4 hgweb: added test case for extension loading phases (issue1824)
Yuya Nishihara <yuya@tcha.org>
parents: 9410
diff changeset
   638
17014
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   639
hide outer repo
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   640
  $ hg init
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   641
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   642
  $ cat > empty.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   643
  > '''empty cmdtable
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   644
  > '''
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   645
  > cmdtable = {}
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   646
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   647
  $ emptypath=`pwd`/empty.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   648
  $ echo "empty = $emptypath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   649
  $ hg help empty
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   650
  empty extension - empty cmdtable
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   651
  
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   652
  no commands defined
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   653
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   654
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   655
  $ echo 'empty = !' >> $HGRCPATH
9661
c4f6c02e33c4 hgweb: added test case for extension loading phases (issue1824)
Yuya Nishihara <yuya@tcha.org>
parents: 9410
diff changeset
   656
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   657
  $ cat > debugextension.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   658
  > '''only debugcommands
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   659
  > '''
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   660
  > from mercurial import registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
   661
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   662
  > command = registrar.command(cmdtable)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   663
  > @command(b'debugfoobar', [], b'hg debugfoobar')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   664
  > def debugfoobar(ui, repo, *args, **opts):
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   665
  >     "yet another debug command"
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   666
  >     pass
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   667
  > @command(b'foo', [], b'hg foo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   668
  > def foo(ui, repo, *args, **opts):
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   669
  >     """yet another foo command
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   670
  >     This command has been DEPRECATED since forever.
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   671
  >     """
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   672
  >     pass
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   673
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   674
  $ debugpath=`pwd`/debugextension.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   675
  $ echo "debugextension = $debugpath" >> $HGRCPATH
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   676
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   677
  $ hg help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   678
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   679
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   680
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   681
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   682
  options:
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   683
  
39936
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39746
diff changeset
   684
   -T --template TEMPLATE display with template
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39746
diff changeset
   685
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   686
  (some details hidden, use --verbose to show complete help)
4950
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4738
diff changeset
   687
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   688
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   689
  $ hg --verbose help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   690
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   691
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   692
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   693
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   694
  options:
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   695
  
39936
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39746
diff changeset
   696
   -T --template TEMPLATE display with template
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   697
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   698
  global options ([+] can be repeated):
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   699
  
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   700
   -R --repository REPO   repository root directory or name of overlay bundle
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   701
                          file
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   702
      --cwd DIR           change working directory
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   703
   -y --noninteractive    do not prompt, automatically pick the first choice for
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   704
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   705
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   706
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
   707
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
   708
                          debug)
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   709
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   710
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   711
      --debugger          start debugger
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   712
      --encoding ENCODE   set the charset encoding (default: ascii)
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   713
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   714
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   715
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   716
      --profile           print command execution profile
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   717
      --version           output version information and exit
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   718
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   719
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   720
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   721
                          (default: auto)
9128
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 8189
diff changeset
   722
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   723
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   724
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   725
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   726
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   727
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   728
  $ hg --debug help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   729
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   730
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   731
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   732
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   733
  options:
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   734
  
39936
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39746
diff changeset
   735
   -T --template TEMPLATE display with template
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   736
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   737
  global options ([+] can be repeated):
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   738
  
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   739
   -R --repository REPO   repository root directory or name of overlay bundle
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   740
                          file
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   741
      --cwd DIR           change working directory
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   742
   -y --noninteractive    do not prompt, automatically pick the first choice for
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   743
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   744
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   745
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
   746
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
   747
                          debug)
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   748
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   749
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   750
      --debugger          start debugger
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   751
      --encoding ENCODE   set the charset encoding (default: ascii)
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   752
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   753
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   754
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   755
      --profile           print command execution profile
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   756
      --version           output version information and exit
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   757
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   758
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   759
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   760
                          (default: auto)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   761
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   762
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   763
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   764
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   765
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   766
  $ echo 'debugextension = !' >> $HGRCPATH
7011
7da76778dbd7 Do not try to load extensions twice (issue811)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5523
diff changeset
   767
27152
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   768
Asking for help about a deprecated extension should do something useful:
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   769
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   770
  $ hg help glog
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   771
  'glog' is provided by the following extension:
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   772
  
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   773
      graphlog      command to view revision graphs from a shell (DEPRECATED)
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   774
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
   775
  (use 'hg help extensions' for information on enabling extensions)
27152
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   776
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   777
Extension module help vs command help:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   778
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   779
  $ echo 'extdiff =' >> $HGRCPATH
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   780
  $ hg help extdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   781
  hg extdiff [OPT]... [FILE]...
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   782
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   783
  use external program to diff repository (or selected files)
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   784
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   785
      Show differences between revisions for the specified files, using an
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   786
      external program. The default program used is diff, with default options
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   787
      "-Npru".
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   788
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   789
      To select a different program, use the -p/--program option. The program
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   790
      will be passed the names of two directories to compare. To pass additional
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   791
      options to the program, use -o/--option. These will be passed before the
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   792
      names of the directories to compare.
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   793
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   794
      When two revision arguments are given, then changes are shown between
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   795
      those revisions. If only one revision is specified then that revision is
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   796
      compared to the working directory, and, when no revisions are specified,
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   797
      the working directory files are compared to its parent.
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   798
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
   799
  (use 'hg help -e extdiff' to show help for the extdiff extension)
14285
aa64a87b493d help: give hint about 'hg help -e' when appropriate
Martin Geisler <mg@aragost.com>
parents: 14284
diff changeset
   800
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   801
  options ([+] can be repeated):
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   802
  
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   803
   -p --program CMD         comparison program to run
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   804
   -o --option OPT [+]      pass option to comparison program
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   805
   -r --rev REV [+]         revision
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   806
   -c --change REV          change made by revision
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   807
      --patch               compare patches for two revisions
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   808
   -I --include PATTERN [+] include names matching the given patterns
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   809
   -X --exclude PATTERN [+] exclude names matching the given patterns
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
   810
   -S --subrepos            recurse into subrepositories
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   811
  
22110
26f7c8033bed help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents: 21937
diff changeset
   812
  (some details hidden, use --verbose to show complete help)
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   813
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   814
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   815
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   816
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   817
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   818
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   819
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   820
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   821
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   822
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   823
  $ hg help --extension extdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   824
  extdiff extension - command to allow external programs to compare revisions
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   825
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   826
  The extdiff Mercurial extension allows you to use external programs to compare
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   827
  revisions, or revision with working directory. The external diff programs are
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   828
  called with a configurable set of options and two non-option arguments: paths
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   829
  to directories containing snapshots of files to compare.
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   830
  
37211
2208149c4b8e extdiff: document that it copies modified files back to working directory
Kyle Lippincott <spectral@google.com>
parents: 36488
diff changeset
   831
  If there is more than one file being compared and the "child" revision is the
2208149c4b8e extdiff: document that it copies modified files back to working directory
Kyle Lippincott <spectral@google.com>
parents: 36488
diff changeset
   832
  working directory, any modifications made in the external diff program will be
2208149c4b8e extdiff: document that it copies modified files back to working directory
Kyle Lippincott <spectral@google.com>
parents: 36488
diff changeset
   833
  copied back to the working directory from the temporary directory.
2208149c4b8e extdiff: document that it copies modified files back to working directory
Kyle Lippincott <spectral@google.com>
parents: 36488
diff changeset
   834
  
14327
d943412e2fba extdiff: grammar "allows to" -> "allows one to"
Javi Merino <cibervicho@gmail.com>
parents: 14286
diff changeset
   835
  The extdiff extension also allows you to configure new diff commands, so you
27729
58f8b29c37ff minirst: change hgrole to use single quotes
timeless <timeless@mozdev.org>
parents: 27491
diff changeset
   836
  do not need to type 'hg extdiff -p kdiff3' always.
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   837
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   838
    [extdiff]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   839
    # add new command that runs GNU diff(1) in 'context diff' mode
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   840
    cdiff = gdiff -Nprc5
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   841
    ## or the old way:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   842
    #cmd.cdiff = gdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   843
    #opts.cdiff = -Nprc5
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   844
  
23150
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22947
diff changeset
   845
    # add new command called meld, runs meld (no need to name twice).  If
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22947
diff changeset
   846
    # the meld executable is not available, the meld tool in [merge-tools]
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22947
diff changeset
   847
    # will be used, if available
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   848
    meld =
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   849
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   850
    # add new command called vimdiff, runs gvimdiff with DirDiff plugin
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   851
    # (see http://www.vim.org/scripts/script.php?script_id=102) Non
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   852
    # English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   853
    # your .vimrc
16242
55174ab81973 extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
Thomas Arendsen Hein <thomas@intevation.de>
parents: 15862
diff changeset
   854
    vimdiff = gvim -f "+next" \
55174ab81973 extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
Thomas Arendsen Hein <thomas@intevation.de>
parents: 15862
diff changeset
   855
              "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   856
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   857
  Tool arguments can include variables that are expanded at runtime:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   858
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   859
    $parent1, $plabel1 - filename, descriptive label of first parent
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   860
    $child,   $clabel  - filename, descriptive label of child revision
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   861
    $parent2, $plabel2 - filename, descriptive label of second parent
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   862
    $root              - repository root
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   863
    $parent is an alias for $parent1.
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   864
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   865
  The extdiff extension will look in your [diff-tools] and [merge-tools]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   866
  sections for diff tool arguments, when none are specified in [extdiff].
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   867
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   868
    [extdiff]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   869
    kdiff3 =
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   870
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   871
    [diff-tools]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   872
    kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   873
  
27729
58f8b29c37ff minirst: change hgrole to use single quotes
timeless <timeless@mozdev.org>
parents: 27491
diff changeset
   874
  You can use -I/-X and list of file or directory names like normal 'hg diff'
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   875
  command. The extdiff extension makes snapshots of only needed files, so
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   876
  running the external diff program will actually be pretty fast (at least
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   877
  faster than having to compare the entire tree).
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   878
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   879
  list of commands:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   880
  
16853
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16744
diff changeset
   881
   extdiff       use external program to diff repository (or selected files)
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   882
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
   883
  (use 'hg help -v -e extdiff' to show built-in aliases and global options)
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   884
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   885
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   886
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   887
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   888
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   889
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   890
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   891
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   892
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   893
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   894
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   895
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   896
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   897
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   898
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   899
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   900
  $ echo 'extdiff = !' >> $HGRCPATH
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   901
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   902
Test help topic with same name as extension
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   903
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   904
  $ cat > multirevs.py <<EOF
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   905
  > from mercurial import commands, registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
   906
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   907
  > command = registrar.command(cmdtable)
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   908
  > """multirevs extension
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   909
  > Big multi-line module docstring."""
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   910
  > @command(b'multirevs', [], b'ARG', norepo=True)
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   911
  > def multirevs(ui, repo, arg, *args, **opts):
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   912
  >     """multirevs command"""
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   913
  >     pass
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   914
  > EOF
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   915
  $ echo "multirevs = multirevs.py" >> $HGRCPATH
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   916
30615
66cffa87d2f2 help: make multirevs just an alias for revsets
Martin von Zweigbergk <martinvonz@google.com>
parents: 30494
diff changeset
   917
  $ hg help multirevs | tail
34948
ff178743e59b help: minor copy editing for grammar
Matt Harbison <matt_harbison@yahoo.com>
parents: 34845
diff changeset
   918
        used):
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   919
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30615
diff changeset
   920
          hg update :@
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   921
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30615
diff changeset
   922
      - Show diff between tags 1.3 and 1.5 (this works because the first and the
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30615
diff changeset
   923
        last revisions of the revset are used):
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   924
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30615
diff changeset
   925
          hg diff -r 1.3::1.5
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   926
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
   927
  use 'hg help -c multirevs' to see help for the multirevs command
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   928
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   929
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   930
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   931
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   932
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   933
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   934
  $ hg help -c multirevs
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   935
  hg multirevs ARG
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   936
  
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   937
  multirevs command
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   938
  
22110
26f7c8033bed help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents: 21937
diff changeset
   939
  (some details hidden, use --verbose to show complete help)
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   940
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   941
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   942
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   943
  $ hg multirevs
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   944
  hg multirevs: invalid arguments
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   945
  hg multirevs ARG
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   946
  
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   947
  multirevs command
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   948
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
   949
  (use 'hg multirevs -h' to show more help)
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   950
  [255]
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   951
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   952
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   953
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   954
  $ echo "multirevs = !" >> $HGRCPATH
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   955
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12327
diff changeset
   956
Issue811: Problem loading extensions twice (by site and by user)
7011
7da76778dbd7 Do not try to load extensions twice (issue811)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5523
diff changeset
   957
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   958
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   959
  > mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   960
  > strip =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   961
  > hgext.mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   962
  > hgext/mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
   963
  > EOF
7011
7da76778dbd7 Do not try to load extensions twice (issue811)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5523
diff changeset
   964
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   965
Show extensions:
19822
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19777
diff changeset
   966
(note that mq force load strip, also checking it's not loaded twice)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   967
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37211
diff changeset
   968
#if no-extraextensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   969
  $ hg debugextensions
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   970
  mq
19822
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19777
diff changeset
   971
  strip
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37211
diff changeset
   972
#endif
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   973
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   974
For extensions, which name matches one of its commands, help
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   975
message should ask '-v -e' to get list of built-in aliases
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   976
along with extension help itself
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   977
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   978
  $ mkdir $TESTTMP/d
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   979
  $ cat > $TESTTMP/d/dodo.py <<EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   980
  > """
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   981
  > This is an awesome 'dodo' extension. It does nothing and
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   982
  > writes 'Foo foo'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   983
  > """
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   984
  > from mercurial import commands, registrar
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   985
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
   986
  > command = registrar.command(cmdtable)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   987
  > @command(b'dodo', [], b'hg dodo')
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   988
  > def dodo(ui, *args, **kwargs):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   989
  >     """Does nothing"""
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   990
  >     ui.write(b"I do nothing. Yay\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   991
  > @command(b'foofoo', [], b'hg foofoo')
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   992
  > def foofoo(ui, *args, **kwargs):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   993
  >     """Writes 'Foo foo'"""
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
   994
  >     ui.write(b"Foo foo\\n")
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   995
  > EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   996
  $ dodopath=$TESTTMP/d/dodo.py
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   997
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   998
  $ echo "dodo = $dodopath" >> $HGRCPATH
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
   999
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1000
Make sure that user is asked to enter '-v -e' to get list of built-in aliases
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1001
  $ hg help -e dodo
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1002
  dodo extension -
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1003
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1004
  This is an awesome 'dodo' extension. It does nothing and writes 'Foo foo'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1005
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1006
  list of commands:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1007
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1008
   dodo          Does nothing
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1009
   foofoo        Writes 'Foo foo'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1010
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1011
  (use 'hg help -v -e dodo' to show built-in aliases and global options)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1012
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1013
Make sure that '-v -e' prints list of built-in aliases along with
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1014
extension help itself
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1015
  $ hg help -v -e dodo
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1016
  dodo extension -
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1017
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1018
  This is an awesome 'dodo' extension. It does nothing and writes 'Foo foo'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1019
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1020
  list of commands:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1021
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1022
   dodo          Does nothing
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1023
   foofoo        Writes 'Foo foo'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1024
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1025
  global options ([+] can be repeated):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1026
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1027
   -R --repository REPO   repository root directory or name of overlay bundle
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1028
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1029
      --cwd DIR           change working directory
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1030
   -y --noninteractive    do not prompt, automatically pick the first choice for
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1031
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1032
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1033
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
  1034
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
  1035
                          debug)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1036
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1037
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1038
      --debugger          start debugger
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1039
      --encoding ENCODE   set the charset encoding (default: ascii)
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1040
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1041
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1042
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1043
      --profile           print command execution profile
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1044
      --version           output version information and exit
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1045
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1046
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1047
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1048
                          (default: auto)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1049
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1050
Make sure that single '-v' option shows help and built-ins only for 'dodo' command
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1051
  $ hg help -v dodo
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1052
  hg dodo
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1053
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1054
  Does nothing
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1055
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1056
  (use 'hg help -e dodo' to show help for the dodo extension)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1057
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1058
  options:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1059
  
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1060
    --mq operate on patch repository
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1061
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1062
  global options ([+] can be repeated):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1063
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1064
   -R --repository REPO   repository root directory or name of overlay bundle
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1065
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1066
      --cwd DIR           change working directory
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1067
   -y --noninteractive    do not prompt, automatically pick the first choice for
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1068
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1069
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1070
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
  1071
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
  1072
                          debug)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1073
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1074
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1075
      --debugger          start debugger
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1076
      --encoding ENCODE   set the charset encoding (default: ascii)
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1077
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1078
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1079
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1080
      --profile           print command execution profile
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1081
      --version           output version information and exit
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1082
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1083
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1084
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1085
                          (default: auto)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1086
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1087
In case when extension name doesn't match any of its commands,
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1088
help message should ask for '-v' to get list of built-in aliases
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1089
along with extension help
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1090
  $ cat > $TESTTMP/d/dudu.py <<EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1091
  > """
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1092
  > This is an awesome 'dudu' extension. It does something and
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1093
  > also writes 'Beep beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1094
  > """
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
  1095
  > from mercurial import commands, registrar
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1096
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
  1097
  > command = registrar.command(cmdtable)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1098
  > @command(b'something', [], b'hg something')
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1099
  > def something(ui, *args, **kwargs):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1100
  >     """Does something"""
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1101
  >     ui.write(b"I do something. Yaaay\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1102
  > @command(b'beep', [], b'hg beep')
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1103
  > def beep(ui, *args, **kwargs):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1104
  >     """Writes 'Beep beep'"""
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1105
  >     ui.write(b"Beep beep\\n")
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1106
  > EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1107
  $ dudupath=$TESTTMP/d/dudu.py
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1108
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1109
  $ echo "dudu = $dudupath" >> $HGRCPATH
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1110
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1111
  $ hg help -e dudu
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1112
  dudu extension -
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1113
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1114
  This is an awesome 'dudu' extension. It does something and also writes 'Beep
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1115
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1116
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1117
  list of commands:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1118
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1119
   beep          Writes 'Beep beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1120
   something     Does something
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1121
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1122
  (use 'hg help -v dudu' to show built-in aliases and global options)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1123
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1124
In case when extension name doesn't match any of its commands,
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1125
help options '-v' and '-v -e' should be equivalent
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1126
  $ hg help -v dudu
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1127
  dudu extension -
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1128
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1129
  This is an awesome 'dudu' extension. It does something and also writes 'Beep
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1130
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1131
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1132
  list of commands:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1133
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1134
   beep          Writes 'Beep beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1135
   something     Does something
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1136
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1137
  global options ([+] can be repeated):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1138
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1139
   -R --repository REPO   repository root directory or name of overlay bundle
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1140
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1141
      --cwd DIR           change working directory
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1142
   -y --noninteractive    do not prompt, automatically pick the first choice for
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1143
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1144
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1145
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
  1146
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
  1147
                          debug)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1148
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1149
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1150
      --debugger          start debugger
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1151
      --encoding ENCODE   set the charset encoding (default: ascii)
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1152
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1153
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1154
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1155
      --profile           print command execution profile
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1156
      --version           output version information and exit
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1157
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1158
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1159
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1160
                          (default: auto)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1161
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1162
  $ hg help -v -e dudu
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1163
  dudu extension -
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1164
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1165
  This is an awesome 'dudu' extension. It does something and also writes 'Beep
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1166
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1167
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1168
  list of commands:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1169
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1170
   beep          Writes 'Beep beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1171
   something     Does something
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1172
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1173
  global options ([+] can be repeated):
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1174
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1175
   -R --repository REPO   repository root directory or name of overlay bundle
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1176
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1177
      --cwd DIR           change working directory
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1178
   -y --noninteractive    do not prompt, automatically pick the first choice for
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1179
                          all prompts
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1180
   -q --quiet             suppress output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1181
   -v --verbose           enable additional output
31121
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31013
diff changeset
  1182
      --color TYPE        when to colorize (boolean, always, auto, never, or
31138
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31127
diff changeset
  1183
                          debug)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1184
      --config CONFIG [+] set/override config option (use 'section.name=value')
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1185
      --debug             enable debugging output
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1186
      --debugger          start debugger
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1187
      --encoding ENCODE   set the charset encoding (default: ascii)
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1188
      --encodingmode MODE set the charset encoding mode (default: strict)
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1189
      --traceback         always print a traceback on exception
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1190
      --time              time how long the command takes
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1191
      --profile           print command execution profile
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1192
      --version           output version information and exit
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1193
   -h --help              display help and exit
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30026
diff changeset
  1194
      --hidden            consider hidden changesets
31013
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1195
      --pager TYPE        when to paginate (boolean, always, auto, or never)
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1196
                          (default: auto)
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1197
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1198
Disabled extension commands:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 9802
diff changeset
  1199
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1200
  $ ORGHGRCPATH=$HGRCPATH
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1201
  $ HGRCPATH=
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1202
  $ export HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1203
  $ hg help email
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1204
  'email' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1205
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1206
      patchbomb     command to send changesets as (a series of) patch emails
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1207
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1208
  (use 'hg help extensions' for information on enabling extensions)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1209
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1210
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1211
  $ hg qdel
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1212
  hg: unknown command 'qdel'
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1213
  'qdelete' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1214
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1215
      mq            manage a stack of patches
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1216
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1217
  (use 'hg help extensions' for information on enabling extensions)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12191
diff changeset
  1218
  [255]
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1219
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1220
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1221
  $ hg churn
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1222
  hg: unknown command 'churn'
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1223
  'churn' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1224
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1225
      churn         command to display statistics about repository history
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1226
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1227
  (use 'hg help extensions' for information on enabling extensions)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12191
diff changeset
  1228
  [255]
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1229
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1230
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1231
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1232
Disabled extensions:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 9802
diff changeset
  1233
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1234
  $ hg help churn
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1235
  churn extension - command to display statistics about repository history
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1236
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1237
  (use 'hg help extensions' for information on enabling extensions)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1238
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1239
  $ hg help patchbomb
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1240
  patchbomb extension - command to send changesets as (a series of) patch emails
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1241
  
30319
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1242
  The series is started off with a "[PATCH 0 of N]" introduction, which
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1243
  describes the series as a whole.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1244
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1245
  Each patch email has a Subject line of "[PATCH M of N] ...", using the first
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1246
  line of the changeset description as the subject text. The message contains
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1247
  two or three body parts:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1248
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1249
  - The changeset description.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1250
  - [Optional] The result of running diffstat on the patch.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1251
  - The patch itself, as generated by 'hg export'.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1252
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1253
  Each message refers to the first in the series using the In-Reply-To and
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1254
  References headers, so they will show up as a sequence in threaded mail and
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1255
  news readers, and in mail archives.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1256
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1257
  To configure other defaults, add a section like this to your configuration
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1258
  file:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1259
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1260
    [email]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1261
    from = My Name <my@email>
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1262
    to = recipient1, recipient2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1263
    cc = cc1, cc2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1264
    bcc = bcc1, bcc2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1265
    reply-to = address1, address2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1266
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1267
  Use "[patchbomb]" as configuration section name if you need to override global
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1268
  "[email]" address settings.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1269
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1270
  Then you can use the 'hg email' command to mail a series of changesets as a
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1271
  patchbomb.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1272
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1273
  You can also either configure the method option in the email section to be a
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1274
  sendmail compatible mailer or fill out the [smtp] section so that the
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1275
  patchbomb extension can automatically send patchbombs directly from the
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1276
  commandline. See the [email] and [smtp] sections in hgrc(5) for details.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1277
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1278
  By default, 'hg email' will prompt for a "To" or "CC" header if you do not
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1279
  supply one via configuration or the command line.  You can override this to
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1280
  never prompt by configuring an empty value:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1281
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1282
    [email]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1283
    cc =
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1284
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1285
  You can control the default inclusion of an introduction message with the
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1286
  "patchbomb.intro" configuration option. The configuration is always
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1287
  overwritten by command line flags like --intro and --desc:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1288
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1289
    [patchbomb]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1290
    intro=auto   # include introduction message if more than 1 patch (default)
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1291
    intro=never  # never include an introduction message
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1292
    intro=always # always include an introduction message
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1293
  
31197
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1294
  You can specify a template for flags to be added in subject prefixes. Flags
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1295
  specified by --flag option are exported as "{flags}" keyword:
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1296
  
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1297
    [patchbomb]
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1298
    flagtemplate = "{separate(' ',
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1299
                              ifeq(branch, 'default', '', branch|upper),
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1300
                              flags)}"
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31138
diff changeset
  1301
  
30319
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1302
  You can set patchbomb to always ask for confirmation by setting
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1303
  "patchbomb.confirm" to true.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1304
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1305
  (use 'hg help extensions' for information on enabling extensions)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1306
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1307
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1308
Broken disabled extension and command:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1309
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1310
  $ mkdir hgext
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1311
  $ echo > hgext/__init__.py
40205
89ba51c3e4f1 tests: use NO_CHECK_EOF for fragments having intentional error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40184
diff changeset
  1312
  $ cat > hgext/broken.py <<NO_CHECK_EOF
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1313
  > "broken extension'
40205
89ba51c3e4f1 tests: use NO_CHECK_EOF for fragments having intentional error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 40184
diff changeset
  1314
  > NO_CHECK_EOF
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1315
  $ cat > path.py <<EOF
40369
ef6cab7930b3 py3: fix module imports in tests, as flagged by test-check-module-imports.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 40263
diff changeset
  1316
  > import os
ef6cab7930b3 py3: fix module imports in tests, as flagged by test-check-module-imports.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 40263
diff changeset
  1317
  > import sys
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1318
  > sys.path.insert(0, os.environ['HGEXTPATH'])
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1319
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1320
  $ HGEXTPATH=`pwd`
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1321
  $ export HGEXTPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1322
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1323
  $ hg --config extensions.path=./path.py help broken
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1324
  broken extension - (no help text available)
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1325
  
29978
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29889
diff changeset
  1326
  (use 'hg help extensions' for information on enabling extensions)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1327
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1328
13191
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1329
  $ cat > hgext/forest.py <<EOF
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1330
  > cmdtable = None
38195
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1331
  > @command()
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1332
  > def f():
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1333
  >     pass
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1334
  > @command(123)
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1335
  > def g():
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38060
diff changeset
  1336
  >     pass
13191
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1337
  > EOF
39249
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39223
diff changeset
  1338
  $ hg --config extensions.path=./path.py help foo
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39223
diff changeset
  1339
  abort: no such help topic: foo
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39223
diff changeset
  1340
  (try 'hg help --keyword foo')
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12191
diff changeset
  1341
  [255]
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1342
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1343
  $ cat > throw.py <<EOF
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
  1344
  > from mercurial import commands, registrar, util
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1345
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
  1346
  > command = registrar.command(cmdtable)
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1347
  > class Bogon(Exception): pass
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1348
  > @command(b'throw', [], b'hg throw', norepo=True)
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1349
  > def throw(ui, **opts):
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1350
  >     """throws an exception"""
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1351
  >     raise Bogon()
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1352
  > EOF
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1353
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1354
No declared supported version, extension complains:
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1355
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1356
  ** Unknown exception encountered with possibly-broken third-party extension throw
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1357
  ** which supports versions unknown of Mercurial.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1358
  ** Please disable throw and try your action again.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1359
  ** If that fixes the bug please report it to the extension author.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1360
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1361
  ** Mercurial Distributed SCM * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1362
  ** Extensions loaded: throw
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1363
18224
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1364
empty declaration of supported version, extension complains:
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1365
  $ echo "testedwith = ''" >> throw.py
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1366
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1367
  ** Unknown exception encountered with possibly-broken third-party extension throw
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1368
  ** which supports versions unknown of Mercurial.
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1369
  ** Please disable throw and try your action again.
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1370
  ** If that fixes the bug please report it to the extension author.
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1371
  ** Python * (glob)
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1372
  ** Mercurial Distributed SCM (*) (glob)
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1373
  ** Extensions loaded: throw
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1374
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1375
If the extension specifies a buglink, show that:
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1376
  $ echo 'buglink = "http://example.com/bts"' >> throw.py
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1377
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1378
  $ rm -Rf __pycache__
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1379
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1380
  ** Unknown exception encountered with possibly-broken third-party extension throw
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1381
  ** which supports versions unknown of Mercurial.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1382
  ** Please disable throw and try your action again.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1383
  ** If that fixes the bug please report it to http://example.com/bts
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1384
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1385
  ** Mercurial Distributed SCM (*) (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1386
  ** Extensions loaded: throw
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1387
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1388
If the extensions declare outdated versions, accuse the older extension first:
17227
7af38fe1f829 test-extension.t: use fixed version string instead of current tag
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17014
diff changeset
  1389
  $ echo "from mercurial import util" >> older.py
38060
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 38021
diff changeset
  1390
  $ echo "util.version = lambda:b'2.2'" >> older.py
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1391
  $ echo "testedwith = b'1.9.3'" >> older.py
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1392
  $ echo "testedwith = b'2.1.1'" >> throw.py
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1393
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1394
  $ rm -Rf __pycache__
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1395
  $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1396
  >   throw 2>&1 | egrep '^\*\*'
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1397
  ** Unknown exception encountered with possibly-broken third-party extension older
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1398
  ** which supports versions 1.9 of Mercurial.
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1399
  ** Please disable older and try your action again.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1400
  ** If that fixes the bug please report it to the extension author.
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1401
  ** Python * (glob)
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1402
  ** Mercurial Distributed SCM (version 2.2)
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1403
  ** Extensions loaded: throw, older
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1404
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1405
One extension only tested with older, one only with newer versions:
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1406
  $ echo "util.version = lambda:b'2.1'" >> older.py
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1407
  $ rm -f older.pyc older.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1408
  $ rm -Rf __pycache__
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1409
  $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1410
  >   throw 2>&1 | egrep '^\*\*'
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1411
  ** Unknown exception encountered with possibly-broken third-party extension older
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1412
  ** which supports versions 1.9 of Mercurial.
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1413
  ** Please disable older and try your action again.
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1414
  ** If that fixes the bug please report it to the extension author.
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1415
  ** Python * (glob)
23870
9070e20057ae test-extension: use a realistic Mercurial version
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23869
diff changeset
  1416
  ** Mercurial Distributed SCM (version 2.1)
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1417
  ** Extensions loaded: throw, older
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1418
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1419
Older extension is tested with current version, the other only with newer:
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1420
  $ echo "util.version = lambda:b'1.9.3'" >> older.py
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1421
  $ rm -f older.pyc older.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1422
  $ rm -Rf __pycache__
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1423
  $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1424
  >   throw 2>&1 | egrep '^\*\*'
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1425
  ** Unknown exception encountered with possibly-broken third-party extension throw
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1426
  ** which supports versions 2.1 of Mercurial.
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1427
  ** Please disable throw and try your action again.
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1428
  ** If that fixes the bug please report it to http://example.com/bts
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1429
  ** Python * (glob)
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1430
  ** Mercurial Distributed SCM (version 1.9.3)
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1431
  ** Extensions loaded: throw, older
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1432
26263
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1433
Ability to point to a different point
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1434
  $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1435
  >   --config ui.supportcontact='Your Local Goat Lenders' throw 2>&1 | egrep '^\*\*'
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1436
  ** unknown exception encountered, please report by visiting
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1437
  ** Your Local Goat Lenders
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1438
  ** Python * (glob)
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1439
  ** Mercurial Distributed SCM (*) (glob)
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1440
  ** Extensions loaded: throw, older
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1441
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1442
Declare the version as supporting this hg version, show regular bts link:
29198
a3e5e1fb257c tests: use debuginstall to retrieve hg version
timeless <timeless@mozdev.org>
parents: 28623
diff changeset
  1443
  $ hgver=`hg debuginstall -T '{hgver}'`
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1444
  $ echo 'testedwith = """'"$hgver"'"""' >> throw.py
24257
31e9f66863f3 test: make version based test-extensions failure more explanatory
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24124
diff changeset
  1445
  $ if [ -z "$hgver" ]; then
31e9f66863f3 test: make version based test-extensions failure more explanatory
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24124
diff changeset
  1446
  >   echo "unable to fetch a mercurial version. Make sure __version__ is correct";
31e9f66863f3 test: make version based test-extensions failure more explanatory
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24124
diff changeset
  1447
  > fi
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1448
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1449
  $ rm -Rf __pycache__
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1450
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1451
  ** unknown exception encountered, please report by visiting
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1452
  ** https://mercurial-scm.org/wiki/BugTracker
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1453
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1454
  ** Mercurial Distributed SCM (*) (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1455
  ** Extensions loaded: throw
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1456
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1457
Patch version is ignored during compatibility check
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1458
  $ echo "testedwith = b'3.2'" >> throw.py
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1459
  $ echo "util.version = lambda:b'3.2.2'" >> throw.py
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1460
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1461
  $ rm -Rf __pycache__
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1462
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1463
  ** unknown exception encountered, please report by visiting
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1464
  ** https://mercurial-scm.org/wiki/BugTracker
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1465
  ** Python * (glob)
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1466
  ** Mercurial Distributed SCM (*) (glob)
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1467
  ** Extensions loaded: throw
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1468
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1469
Test version number support in 'hg version':
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1470
  $ echo '__version__ = (1, 2, 3)' >> throw.py
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1471
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1472
  $ rm -Rf __pycache__
21937
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1473
  $ hg version -v
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1474
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1475
  (see https://mercurial-scm.org for more information)
21937
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1476
  
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1477
  Copyright (C) 2005-* Matt Mackall and others (glob)
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1478
  This is free software; see the source for copying conditions. There is NO
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1479
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1480
  
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1481
  Enabled extensions:
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1482
  
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1483
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1484
  $ hg version -v --config extensions.throw=throw.py
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1485
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1486
  (see https://mercurial-scm.org for more information)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1487
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1488
  Copyright (C) 2005-* Matt Mackall and others (glob)
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1489
  This is free software; see the source for copying conditions. There is NO
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1490
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1491
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1492
  Enabled extensions:
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1493
  
27990
96bfd2875213 version: verbose list internal and external extension source (issue4731)
liscju <piotr.listkiewicz@gmail.com>
parents: 27729
diff changeset
  1494
    throw  external  1.2.3
38060
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 38021
diff changeset
  1495
  $ echo 'getversion = lambda: b"1.twentythree"' >> throw.py
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1496
  $ rm -f throw.pyc throw.pyo
33622
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33621
diff changeset
  1497
  $ rm -Rf __pycache__
29850
110ed1868f86 version: factor out mapping of internal/external labels
Yuya Nishihara <yuya@tcha.org>
parents: 29849
diff changeset
  1498
  $ hg version -v --config extensions.throw=throw.py --config extensions.strip=
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1499
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1500
  (see https://mercurial-scm.org for more information)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1501
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1502
  Copyright (C) 2005-* Matt Mackall and others (glob)
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1503
  This is free software; see the source for copying conditions. There is NO
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1504
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1505
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1506
  Enabled extensions:
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1507
  
27990
96bfd2875213 version: verbose list internal and external extension source (issue4731)
liscju <piotr.listkiewicz@gmail.com>
parents: 27729
diff changeset
  1508
    throw  external  1.twentythree
29850
110ed1868f86 version: factor out mapping of internal/external labels
Yuya Nishihara <yuya@tcha.org>
parents: 29849
diff changeset
  1509
    strip  internal  
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1510
29849
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29748
diff changeset
  1511
  $ hg version -q --config extensions.throw=throw.py
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29748
diff changeset
  1512
  Mercurial Distributed SCM (version *) (glob)
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29748
diff changeset
  1513
37500
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1514
Test template output:
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1515
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1516
  $ hg version --config extensions.strip= -T'{extensions}'
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1517
  strip
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1518
29851
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1519
Test JSON output of version:
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1520
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1521
  $ hg version -Tjson
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1522
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1523
   {
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1524
    "extensions": [],
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1525
    "ver": "*" (glob)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1526
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1527
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1528
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1529
  $ hg version --config extensions.throw=throw.py -Tjson
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1530
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1531
   {
29889
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29873
diff changeset
  1532
    "extensions": [{"bundled": false, "name": "throw", "ver": "1.twentythree"}],
29851
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1533
    "ver": "3.2.2"
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1534
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1535
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1536
29889
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29873
diff changeset
  1537
  $ hg version --config extensions.strip= -Tjson
29851
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1538
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1539
   {
29889
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29873
diff changeset
  1540
    "extensions": [{"bundled": true, "name": "strip", "ver": null}],
29851
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1541
    "ver": "*" (glob)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1542
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1543
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1544
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1545
Test template output of version:
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1546
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1547
  $ hg version --config extensions.throw=throw.py --config extensions.strip= \
29889
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29873
diff changeset
  1548
  > -T'{extensions % "{name}  {pad(ver, 16)}  ({if(bundled, "internal", "external")})\n"}'
29851
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1549
  throw  1.twentythree     (external)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1550
  strip                    (internal)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29850
diff changeset
  1551
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1552
Refuse to load extensions with minimum version requirements
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1553
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1554
  $ cat > minversion1.py << EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1555
  > from mercurial import util
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1556
  > util.version = lambda: b'3.5.2'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1557
  > minimumhgversion = b'3.6'
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1558
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1559
  $ hg --config extensions.minversion=minversion1.py version
40515
cfa564037789 extensions: include current version in "invalid version" message
Boris Feld <boris.feld@octobus.net>
parents: 40369
diff changeset
  1560
  (third party extension minversion requires version 3.6 or newer of Mercurial (current: 3.5.2); disabling)
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1561
  Mercurial Distributed SCM (version 3.5.2)
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1562
  (see https://mercurial-scm.org for more information)
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1563
  
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1564
  Copyright (C) 2005-* Matt Mackall and others (glob)
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1565
  This is free software; see the source for copying conditions. There is NO
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1566
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1567
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1568
  $ cat > minversion2.py << EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1569
  > from mercurial import util
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1570
  > util.version = lambda: b'3.6'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1571
  > minimumhgversion = b'3.7'
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1572
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1573
  $ hg --config extensions.minversion=minversion2.py version 2>&1 | egrep '\(third'
40515
cfa564037789 extensions: include current version in "invalid version" message
Boris Feld <boris.feld@octobus.net>
parents: 40369
diff changeset
  1574
  (third party extension minversion requires version 3.7 or newer of Mercurial (current: 3.6); disabling)
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1575
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1576
Can load version that is only off by point release
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1577
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1578
  $ cat > minversion2.py << EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1579
  > from mercurial import util
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1580
  > util.version = lambda: b'3.6.1'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1581
  > minimumhgversion = b'3.6'
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1582
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1583
  $ hg --config extensions.minversion=minversion3.py version 2>&1 | egrep '\(third'
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1584
  [1]
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1585
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1586
Can load minimum version identical to current
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1587
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1588
  $ cat > minversion3.py << EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1589
  > from mercurial import util
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1590
  > util.version = lambda: b'3.5'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1591
  > minimumhgversion = b'3.5'
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1592
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1593
  $ hg --config extensions.minversion=minversion3.py version 2>&1 | egrep '\(third'
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1594
  [1]
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1595
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1596
Restore HGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1597
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1598
  $ HGRCPATH=$ORGHGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1599
  $ export HGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1600
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1601
Commands handling multiple repositories at a time should invoke only
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1602
"reposetup()" of extensions enabling in the target repository.
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1603
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1604
  $ mkdir reposetup-test
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1605
  $ cd reposetup-test
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1606
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1607
  $ cat > $TESTTMP/reposetuptest.py <<EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1608
  > from mercurial import extensions
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1609
  > def reposetup(ui, repo):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1610
  >     ui.write(b'reposetup() for %s\n' % (repo.root))
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
  1611
  >     ui.flush()
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1612
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1613
  $ hg init src
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1614
  $ echo a > src/a
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1615
  $ hg -R src commit -Am '#0 at src/a'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1616
  adding a
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1617
  $ echo '[extensions]' >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1618
  $ echo '# enable extension locally' >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1619
  $ echo "reposetuptest = $TESTTMP/reposetuptest.py" >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1620
  $ hg -R src status
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1621
  reposetup() for $TESTTMP/reposetup-test/src
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1622
  reposetup() for $TESTTMP/reposetup-test/src (chg !)
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1623
39149
f2e645dc6a67 tests: conditionalize extension tests for extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38827
diff changeset
  1624
#if no-extraextensions
38021
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1625
  $ hg --cwd src debugextensions
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1626
  reposetup() for $TESTTMP/reposetup-test/src
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1627
  dodo (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1628
  dudu (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1629
  mq
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1630
  reposetuptest (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1631
  strip
39149
f2e645dc6a67 tests: conditionalize extension tests for extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38827
diff changeset
  1632
#endif
38021
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 38001
diff changeset
  1633
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1634
  $ hg clone -U src clone-dst1
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1635
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1636
  $ hg init push-dst1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1637
  $ hg -q -R src push push-dst1
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1638
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1639
  $ hg init pull-src1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1640
  $ hg -q -R pull-src1 pull src
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1641
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1642
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1643
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1644
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1645
  > # disable extension globally and explicitly
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1646
  > reposetuptest = !
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1647
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1648
  $ hg clone -U src clone-dst2
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1649
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1650
  $ hg init push-dst2
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1651
  $ hg -q -R src push push-dst2
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1652
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1653
  $ hg init pull-src2
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1654
  $ hg -q -R pull-src2 pull src
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1655
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1656
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1657
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1658
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1659
  > # enable extension globally
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1660
  > reposetuptest = $TESTTMP/reposetuptest.py
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1661
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1662
  $ hg clone -U src clone-dst3
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1663
  reposetup() for $TESTTMP/reposetup-test/src
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1664
  reposetup() for $TESTTMP/reposetup-test/clone-dst3
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1665
  $ hg init push-dst3
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1666
  reposetup() for $TESTTMP/reposetup-test/push-dst3
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1667
  $ hg -q -R src push push-dst3
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1668
  reposetup() for $TESTTMP/reposetup-test/src
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1669
  reposetup() for $TESTTMP/reposetup-test/push-dst3
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1670
  $ hg init pull-src3
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1671
  reposetup() for $TESTTMP/reposetup-test/pull-src3
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1672
  $ hg -q -R pull-src3 pull src
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1673
  reposetup() for $TESTTMP/reposetup-test/pull-src3
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1674
  reposetup() for $TESTTMP/reposetup-test/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1675
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1676
  $ echo '[extensions]' >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1677
  $ echo '# disable extension locally' >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1678
  $ echo 'reposetuptest = !' >> src/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1679
  $ hg clone -U src clone-dst4
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1680
  reposetup() for $TESTTMP/reposetup-test/clone-dst4
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1681
  $ hg init push-dst4
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1682
  reposetup() for $TESTTMP/reposetup-test/push-dst4
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1683
  $ hg -q -R src push push-dst4
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1684
  reposetup() for $TESTTMP/reposetup-test/push-dst4
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1685
  $ hg init pull-src4
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1686
  reposetup() for $TESTTMP/reposetup-test/pull-src4
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1687
  $ hg -q -R pull-src4 pull src
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1688
  reposetup() for $TESTTMP/reposetup-test/pull-src4
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1689
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1690
disabling in command line overlays with all configuration
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1691
  $ hg --config extensions.reposetuptest=! clone -U src clone-dst5
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1692
  $ hg --config extensions.reposetuptest=! init push-dst5
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1693
  $ hg --config extensions.reposetuptest=! -q -R src push push-dst5
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1694
  $ hg --config extensions.reposetuptest=! init pull-src5
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1695
  $ hg --config extensions.reposetuptest=! -q -R pull-src5 pull src
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1696
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1697
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1698
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1699
  > # disable extension globally and explicitly
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1700
  > reposetuptest = !
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1701
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1702
  $ hg init parent
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1703
  $ hg init parent/sub1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1704
  $ echo 1 > parent/sub1/1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1705
  $ hg -R parent/sub1 commit -Am '#0 at parent/sub1'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1706
  adding 1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1707
  $ hg init parent/sub2
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1708
  $ hg init parent/sub2/sub21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1709
  $ echo 21 > parent/sub2/sub21/21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1710
  $ hg -R parent/sub2/sub21 commit -Am '#0 at parent/sub2/sub21'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1711
  adding 21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1712
  $ cat > parent/sub2/.hgsub <<EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1713
  > sub21 = sub21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1714
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1715
  $ hg -R parent/sub2 commit -Am '#0 at parent/sub2'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1716
  adding .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1717
  $ hg init parent/sub3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1718
  $ echo 3 > parent/sub3/3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1719
  $ hg -R parent/sub3 commit -Am '#0 at parent/sub3'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1720
  adding 3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1721
  $ cat > parent/.hgsub <<EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1722
  > sub1 = sub1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1723
  > sub2 = sub2
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1724
  > sub3 = sub3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1725
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1726
  $ hg -R parent commit -Am '#0 at parent'
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1727
  adding .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1728
  $ echo '[extensions]' >> parent/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1729
  $ echo '# enable extension locally' >> parent/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1730
  $ echo "reposetuptest = $TESTTMP/reposetuptest.py" >> parent/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1731
  $ cp parent/.hg/hgrc parent/sub2/.hg/hgrc
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1732
  $ hg -R parent status -S -A
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1733
  reposetup() for $TESTTMP/reposetup-test/parent
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1734
  reposetup() for $TESTTMP/reposetup-test/parent/sub2
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1735
  C .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1736
  C .hgsubstate
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1737
  C sub1/1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1738
  C sub2/.hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1739
  C sub2/.hgsubstate
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1740
  C sub2/sub21/21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1741
  C sub3/3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1742
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1743
  $ cd ..
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1744
32381
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1745
Prohibit registration of commands that don't use @command (issue5137)
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1746
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1747
  $ hg init deprecated
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1748
  $ cd deprecated
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1749
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1750
  $ cat <<EOF > deprecatedcmd.py
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1751
  > def deprecatedcmd(repo, ui):
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1752
  >     pass
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1753
  > cmdtable = {
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1754
  >     b'deprecatedcmd': (deprecatedcmd, [], b''),
32381
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1755
  > }
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1756
  > EOF
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1757
  $ cat <<EOF > .hg/hgrc
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1758
  > [extensions]
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1759
  > deprecatedcmd = `pwd`/deprecatedcmd.py
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1760
  > mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1761
  > hgext.mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1762
  > hgext/mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1763
  > EOF
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1764
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1765
  $ hg deprecatedcmd > /dev/null
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1766
  *** failed to import extension deprecatedcmd from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1767
  *** (use @command decorator to register 'deprecatedcmd')
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1768
  hg: unknown command 'deprecatedcmd'
38827
5199c5b6fd29 dispatch: don't show list of commands on bogus command
Martin von Zweigbergk <martinvonz@google.com>
parents: 38535
diff changeset
  1769
  (use 'hg help' for a list of commands)
32381
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1770
  [255]
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1771
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1772
 the extension shouldn't be loaded at all so the mq works:
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1773
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1774
  $ hg qseries --config extensions.mq= > /dev/null
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1775
  *** failed to import extension deprecatedcmd from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1776
  *** (use @command decorator to register 'deprecatedcmd')
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1777
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1778
  $ cd ..
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32376
diff changeset
  1779
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1780
Test synopsis and docstring extending
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1781
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1782
  $ hg init exthelp
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1783
  $ cat > exthelp.py <<EOF
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1784
  > from mercurial import commands, extensions
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1785
  > def exbookmarks(orig, *args, **opts):
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1786
  >     return orig(*args, **opts)
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1787
  > def uisetup(ui):
38060
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 38021
diff changeset
  1788
  >     synopsis = b' GREPME [--foo] [-x]'
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1789
  >     docstring = '''
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1790
  >     GREPME make sure that this is in the help!
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1791
  >     '''
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
  1792
  >     extensions.wrapcommand(commands.table, b'bookmarks', exbookmarks,
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1793
  >                            synopsis, docstring)
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1794
  > EOF
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1795
  $ abspath=`pwd`/exthelp.py
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1796
  $ echo '[extensions]' >> $HGRCPATH
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1797
  $ echo "exthelp = $abspath" >> $HGRCPATH
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1798
  $ cd exthelp
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1799
  $ hg help bookmarks | grep GREPME
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1800
  hg bookmarks [OPTIONS]... [NAME]... GREPME [--foo] [-x]
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1801
      GREPME make sure that this is in the help!
32382
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1802
  $ cd ..
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1803
32382
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1804
Show deprecation warning for the use of cmdutil.command
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1805
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1806
  $ cat > nonregistrar.py <<EOF
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1807
  > from mercurial import cmdutil
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1808
  > cmdtable = {}
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1809
  > command = cmdutil.command(cmdtable)
33109
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33064
diff changeset
  1810
  > @command(b'foo', [], norepo=True)
32382
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1811
  > def foo(ui):
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1812
  >     pass
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1813
  > EOF
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32381
diff changeset
  1814
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1815
Prohibit the use of unicode strings as the default value of options
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1816
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1817
  $ hg init $TESTTMP/opt-unicode-default
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1818
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1819
  $ cat > $TESTTMP/test_unicode_default_value.py << EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
  1820
  > from __future__ import print_function
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1821
  > from mercurial import registrar
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1822
  > cmdtable = {}
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1823
  > command = registrar.command(cmdtable)
38060
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 38021
diff changeset
  1824
  > @command(b'dummy', [(b'', b'opt', u'value', u'help')], 'ext [OPTIONS]')
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1825
  > def ext(*args, **opts):
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
  1826
  >     print(opts[b'opt'], flush=True)
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1827
  > EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39936
diff changeset
  1828
  $ $PYTHON $TESTTMP/unflush.py $TESTTMP/test_unicode_default_value.py
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1829
  $ cat > $TESTTMP/opt-unicode-default/.hg/hgrc << EOF
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1830
  > [extensions]
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1831
  > test_unicode_default_value = $TESTTMP/test_unicode_default_value.py
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1832
  > EOF
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1833
  $ hg -R $TESTTMP/opt-unicode-default dummy
40184
c3b7d9c54edd tests: glob away some annoying py3 differences
Augie Fackler <augie@google.com>
parents: 40183
diff changeset
  1834
  *** failed to import extension test_unicode_default_value from $TESTTMP/test_unicode_default_value.py: unicode *'value' found in cmdtable.dummy (glob)
36302
4088e568a411 extensions: reject any unicode strings in tables before loading
Yuya Nishihara <yuya@tcha.org>
parents: 35773
diff changeset
  1835
  *** (use b'' to make it byte string)
34065
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1836
  hg: unknown command 'dummy'
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1837
  (did you mean summary?)
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33957
diff changeset
  1838
  [255]