tests/test-extension.t
author Joerg Sonnenberger <joerg@bec.de>
Fri, 30 Apr 2021 02:11:58 +0200
changeset 47043 12450fbea288
parent 46819 d4ba4d51f85f
child 47442 d1c1fd7ac46d
permissions -rw-r--r--
manifests: push down expected node length into the parser This strictly enforces the node length in the manifest lines according to what the repository expects. One test case moves large hash testing into the non-treemanifest part as treemanifests don't provide an interface for overriding just the node length for now. Differential Revision: https://phab.mercurial-scm.org/D10533
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: 39931
diff changeset
     2
  $ cat > unflush.py <<EOF
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
     3
  > import sys
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
     4
  > from mercurial import pycompat
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
     5
  > if pycompat.ispy3:
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
     6
  >     # no changes required
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
     7
  >     sys.exit(0)
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
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: 39931
diff changeset
     9
  >     data = f.read()
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
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: 39931
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: 39931
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
41047
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    16
  > from mercurial import commands, exthelper, registrar
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    17
  > 
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    18
  > eh = exthelper.exthelper()
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    19
  > eh.configitem(b'tests', b'foo', default=b"Foo")
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    20
  > 
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    21
  > uisetup = eh.finaluisetup
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    22
  > uipopulate = eh.finaluipopulate
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    23
  > reposetup = eh.finalreposetup
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    24
  > cmdtable = eh.cmdtable
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    25
  > configtable = eh.configtable
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    26
  > 
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    27
  > @eh.uisetup
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    28
  > def _uisetup(ui):
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    29
  >     ui.debug(b"uisetup called [debug]\\n")
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
    30
  >     ui.write(b"uisetup called\\n")
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    31
  >     ui.status(b"uisetup called [status]\\n")
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
    32
  >     ui.flush()
41047
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    33
  > @eh.uipopulate
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    34
  > def _uipopulate(ui):
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    35
  >     ui._populatecnt = getattr(ui, "_populatecnt", 0) + 1
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    36
  >     ui.write(b"uipopulate called (%d times)\n" % ui._populatecnt)
41047
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    37
  > @eh.reposetup
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    38
  > def _reposetup(ui, repo):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
    39
  >     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: 36269
diff changeset
    40
  >     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
    41
  >     ui.flush()
41047
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    42
  > @eh.command(b'foo', [], b'hg foo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    43
  > def foo(ui, *args, **kwargs):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
    44
  >     foo = ui.config(b'tests', b'foo')
33132
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33099
diff changeset
    45
  >     ui.write(foo)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
    46
  >     ui.write(b"\\n")
41047
555215e2b051 tests: convert a test extension to use exthelper
Matt Harbison <matt_harbison@yahoo.com>
parents: 41010
diff changeset
    47
  > @eh.command(b'bar', [], b'hg bar', norepo=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    48
  > def bar(ui, *args, **kwargs):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
    49
  >     ui.write(b"Bar\\n")
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    50
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    51
  $ 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
    52
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    53
  $ mkdir barfoo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    54
  $ cp foobar.py barfoo/__init__.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    55
  $ barfoopath=`pwd`/barfoo
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    56
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    57
  $ hg init a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    58
  $ cd a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    59
  $ echo foo > file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    60
  $ hg add file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    61
  $ 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
    62
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    63
  $ echo '[extensions]' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    64
  $ echo "foobar = $abspath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    65
  $ hg foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    66
  uisetup called
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    67
  uisetup called [status]
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    68
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    69
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    70
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    71
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    72
  ui == repo.ui
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    73
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    74
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    75
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    76
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    77
  uipopulate called (1 times) (chg !)
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
    78
  reposetup called for a (chg !)
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
    79
  ui == repo.ui (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    80
  Foo
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    81
  $ hg foo --quiet
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    82
  uisetup called (no-chg !)
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    83
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    84
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    85
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    86
  uipopulate called (1 times) (chg !)
42505
c1850798f995 run-tests: stop matching line for missing feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41738
diff changeset
    87
  uipopulate called (1 times)
c1850798f995 run-tests: stop matching line for missing feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41738
diff changeset
    88
  reposetup called for a
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    89
  ui == repo.ui
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    90
  Foo
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    91
  $ hg foo --debug
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    92
  uisetup called [debug] (no-chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    93
  uisetup called (no-chg !)
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
    94
  uisetup called [status] (no-chg !)
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    95
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    96
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    97
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
    98
  uipopulate called (1 times) (chg !)
42505
c1850798f995 run-tests: stop matching line for missing feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41738
diff changeset
    99
  uipopulate called (1 times)
c1850798f995 run-tests: stop matching line for missing feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41738
diff changeset
   100
  reposetup called for a
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
   101
  ui == repo.ui
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
   102
  Foo
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   103
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   104
  $ cd ..
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   105
  $ hg clone a b
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
   106
  uisetup called (no-chg !)
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
   107
  uisetup called [status] (no-chg !)
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   108
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   109
  uipopulate called (1 times) (chg !)
42505
c1850798f995 run-tests: stop matching line for missing feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41738
diff changeset
   110
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   111
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   112
  ui == repo.ui
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   113
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   114
  reposetup called for b
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   115
  ui == repo.ui
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   116
  updating to branch default
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   117
  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
   118
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   119
  $ hg bar
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
   120
  uisetup called (no-chg !)
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
   121
  uisetup called [status] (no-chg !)
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   122
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   123
  uipopulate called (1 times) (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   124
  Bar
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   125
  $ echo 'foobar = !' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   126
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   127
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
   128
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   129
  $ echo "barfoo = $barfoopath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   130
  $ cd a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   131
  $ hg foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   132
  uisetup called
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
   133
  uisetup called [status]
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   134
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   135
  uipopulate called (1 times)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   136
  uipopulate called (1 times)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   137
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   138
  ui == repo.ui
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   139
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   140
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   141
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   142
  uipopulate called (1 times) (chg !)
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   143
  uipopulate called (1 times) (chg !)
34841
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
   144
  reposetup called for a (chg !)
6bfe43dd20eb test-extension: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 34048
diff changeset
   145
  ui == repo.ui (chg !)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   146
  Foo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   147
  $ echo 'barfoo = !' >> $HGRCPATH
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
   148
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   149
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
   150
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   151
  $ cat > foo.py <<EOF
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
   152
  > from __future__ import print_function
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   153
  > import os
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   154
  > from mercurial import exthelper
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   155
  > from mercurial.utils import procutil
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   156
  > 
46065
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   157
  > def write(msg):
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   158
  >     procutil.stdout.write(msg)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   159
  >     procutil.stdout.flush()
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   160
  > 
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   161
  > name = os.path.basename(__file__).rsplit('.', 1)[0]
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   162
  > bytesname = name.encode('utf-8')
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   163
  > write(b"1) %s imported\n" % bytesname)
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   164
  > eh = exthelper.exthelper()
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   165
  > @eh.uisetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   166
  > def _uisetup(ui):
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   167
  >     write(b"2) %s uisetup\n" % bytesname)
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   168
  > @eh.extsetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   169
  > def _extsetup(ui):
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   170
  >     write(b"3) %s extsetup\n" % bytesname)
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   171
  > @eh.uipopulate
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   172
  > def _uipopulate(ui):
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   173
  >     write(b"4) %s uipopulate\n" % bytesname)
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   174
  > @eh.reposetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   175
  > def _reposetup(ui, repo):
44987
a28d1eca6507 tests: use proctutil.stdout.write() instead of print() in test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44953
diff changeset
   176
  >     write(b"5) %s reposetup\n" % bytesname)
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   177
  > 
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   178
  > extsetup = eh.finalextsetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   179
  > reposetup = eh.finalreposetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   180
  > uipopulate = eh.finaluipopulate
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   181
  > uisetup = eh.finaluisetup
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   182
  > revsetpredicate = eh.revsetpredicate
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   183
  > 
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   184
  > # 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: 32938
diff changeset
   185
  > from mercurial import (
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   186
  >     smartset,
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   187
  > )
41066
0358cca1dccf exthelper: reintroduce the ability to register revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 41047
diff changeset
   188
  > @eh.revsetpredicate(bytesname, safe=True) # safe=True for query via hgweb
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   189
  > def custompredicate(repo, subset, x):
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   190
  >     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
   191
  > EOF
40872
07e181ed82ef py3: quote several instances of $PYTHON for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 40729
diff changeset
   192
  $ "$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
   193
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   194
  $ cp foo.py bar.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   195
  $ echo 'foo = foo.py' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   196
  $ echo 'bar = bar.py' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   197
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   198
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
   199
46065
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   200
 On chg server, extension should be first set up by the server. Then
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   201
 object-level setup should follow in the worker process.
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   202
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   203
  $ hg log -r "foo() and bar()" -q
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   204
  1) foo imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   205
  1) bar imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   206
  2) foo uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   207
  2) bar uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   208
  3) foo extsetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   209
  3) bar extsetup
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   210
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   211
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   212
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   213
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   214
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   215
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   216
  5) foo reposetup
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   217
  5) bar reposetup
46065
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   218
  4) foo uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   219
  4) bar uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   220
  4) foo uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   221
  4) bar uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   222
  4) foo uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   223
  4) bar uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   224
  4) foo uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   225
  4) bar uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   226
  4) foo uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   227
  4) bar uipopulate (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   228
  5) foo reposetup (chg !)
56a5ea353182 test-extension: flush diagnostic message to stabilize chg output
Yuya Nishihara <yuya@tcha.org>
parents: 45954
diff changeset
   229
  5) bar reposetup (chg !)
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   230
  0:c24b9ac61126
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   231
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   232
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
   233
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   234
  $ cat > hgweb.cgi <<EOF
32938
b6776b34e44e tests: use $PYTHON in #! so we always use the right Python
Augie Fackler <augie@google.com>
parents: 32757
diff changeset
   235
  > #!$PYTHON
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   236
  > from mercurial import demandimport; demandimport.enable()
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   237
  > from mercurial.hgweb import hgweb
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   238
  > from mercurial.hgweb import wsgicgi
39621
23b749b84b8a py3: call hgweb.hgweb() with bytes values
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39221
diff changeset
   239
  > application = hgweb(b'.', b'test repo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   240
  > wsgicgi.launch(application)
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   241
  > EOF
33099
4a8db3538c39 tests: use cgienv to minimize environment setup at hgweb tests
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33098
diff changeset
   242
  $ . "$TESTDIR/cgienv"
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   243
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
   244
  $ PATH_INFO='/' SCRIPT_NAME='' "$PYTHON" hgweb.cgi \
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   245
  >    | grep '^[0-9]) ' # ignores HTML output
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   246
  1) foo imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   247
  1) bar imported
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   248
  2) foo uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   249
  2) bar uisetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   250
  3) foo extsetup
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   251
  3) bar extsetup
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   252
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   253
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   254
  4) foo uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   255
  4) bar uipopulate
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   256
  5) foo reposetup
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 40463
diff changeset
   257
  5) bar reposetup
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   258
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   259
(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: 32938
diff changeset
   260
33098
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   261
#if msys
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   262
  $ PATH_INFO='//shortlog'
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   263
#else
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   264
  $ PATH_INFO='/shortlog'
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   265
#endif
c4a20c9484e7 tests: avoid test failure for mangling path-like string by MSYS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 33097
diff changeset
   266
  $ export PATH_INFO
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39621
diff changeset
   267
  $ SCRIPT_NAME='' QUERY_STRING='rev=foo() and bar()' "$PYTHON" hgweb.cgi \
33052
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   268
  >     | grep '<a href="/rev/[0-9a-z]*">'
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   269
     <a href="/rev/c24b9ac61126">add file</a>
45b0e9d05ee9 extensions: register functions always at loading extension (issue5601)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32938
diff changeset
   270
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   271
  $ echo 'foo = !' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   272
  $ echo 'bar = !' >> $HGRCPATH
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   273
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   274
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
   275
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
   276
(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
   277
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
   278
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
   279
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
   280
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
   281
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
   282
20001
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   283
#if windows
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   284
  $ PATHSEP=";"
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   285
#else
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   286
  $ PATHSEP=":"
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   287
#endif
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   288
  $ export PATHSEP
a1f99a7f2d72 tests: choose the path separator in PYTHONPATH suitable for platform
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19933
diff changeset
   289
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   290
  $ mkdir $TESTTMP/libroot
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   291
  $ 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
   292
  $ mkdir $TESTTMP/libroot/mod
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   293
  $ 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
   294
  $ 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
   295
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/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: 39931
diff changeset
   297
  > 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
   298
  > 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
   299
  > 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
   300
  > 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
   301
  $ 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
   302
  > import mod.ambigabs as ambigabs
41068
28a4fb793ba1 extensions: deprecate extsetup without a `ui` argument (API)
Matt Harbison <matt_harbison@yahoo.com>
parents: 41066
diff changeset
   303
  > def extsetup(ui):
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
   304
  >     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
   305
  > NO_CHECK_EOF
40872
07e181ed82ef py3: quote several instances of $PYTHON for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 40729
diff changeset
   306
  $ "$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
   307
  $ (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
   308
  ambigabs.s=libroot/ambig.py
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   309
  $TESTTMP/a
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   310
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 40206
diff changeset
   311
#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
   312
  $ 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: 39931
diff changeset
   313
  > 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
   314
  > 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
   315
  > 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
   316
  > 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
   317
  $ 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
   318
  > import mod.ambigrel as ambigrel
41068
28a4fb793ba1 extensions: deprecate extsetup without a `ui` argument (API)
Matt Harbison <matt_harbison@yahoo.com>
parents: 41066
diff changeset
   319
  > def extsetup(ui):
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
   320
  >     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
   321
  > NO_CHECK_EOF
40872
07e181ed82ef py3: quote several instances of $PYTHON for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 40729
diff changeset
   322
  $ "$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
   323
  $ (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
   324
  ambigrel.s=libroot/mod/ambig.py
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   325
  $TESTTMP/a
19932
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   326
#endif
e3a5922e18c3 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19822
diff changeset
   327
19933
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   328
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
   329
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   330
  $ 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
   331
  $ 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
   332
  > 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
   333
  > 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
   334
  $ 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
   335
  $ 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
   336
  > 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
   337
  > 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
   338
  $ 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
   339
  > 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
   340
  > 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
   341
  $ 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
   342
  > from __future__ import absolute_import
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   343
  > 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
   344
  > 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
   345
  > def extsetup(ui):
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   346
  >     ui.write(b'(extroot) ', foo.func(), b'\n')
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
   347
  >     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
   348
  > 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
   349
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
   350
  $ 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
   351
  > # 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
   352
  > buf = []
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   353
  > def func():
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   354
  >     # "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
   355
  >     import extroot.bar
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   356
  >     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
   357
  >     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
   358
  > # 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
   359
  > from extroot.bar import *
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   360
  > 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
   361
  > # "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
   362
  > import extroot.sub1.baz
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   363
  > 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
   364
  > # "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
   365
  > import extroot
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   366
  > 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
   367
  > # 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
   368
  > 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
   369
  > 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
   370
  > NO_CHECK_EOF
27491
28c1aa12f5de test-extension: do not depend on demandimport (issue5012)
Jun Wu <quark@fb.com>
parents: 27152
diff changeset
   371
  $ (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
   372
  (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
   373
  (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
   374
  (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
   375
  (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
   376
  (extroot) import extroot.bar in func(): this is extroot.bar
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   377
  $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
   378
40263
8cf459d8b111 py3: use py3 as the test tag, dropping the k
Martijn Pieters <mj@octobus.net>
parents: 40206
diff changeset
   379
#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
   380
  $ rm "$TESTTMP"/extroot/foo.*
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
   381
  $ 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
   382
  $ 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
   383
  > # 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
   384
  > buf = []
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   385
  > def func():
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   386
  >     # "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
   387
  >     import bar
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   388
  >     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
   389
  >     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
   390
  > # "fromlist == ('*',)" case
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   391
  > 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
   392
  > 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
   393
  > # "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
   394
  > 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
   395
  > 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
   396
  > # "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
   397
  > import sub1
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   398
  > 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
   399
  > # 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
   400
  > 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
   401
  > 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
   402
  > 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
   403
  $ 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
   404
  (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
   405
  (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
   406
  (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
   407
  (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
   408
  (extroot) import bar in func(): this is extroot.bar
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
   409
  $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
   410
#endif
621a26eb3a99 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19932
diff changeset
   411
33528
c384ac3ea147 tests: drop "absimport" conditionals which should be always true
Yuya Nishihara <yuya@tcha.org>
parents: 33287
diff changeset
   412
#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
   413
30332
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30306
diff changeset
   414
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
   415
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
   416
30332
318a24b52eeb spelling: fixes of non-dictionary words
Mads Kiilerich <madski@unity3d.com>
parents: 30306
diff changeset
   417
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
   418
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   419
- "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
   420
- "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
   421
- "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
   422
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   423
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
   424
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
   425
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   426
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
   427
feature.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   428
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   429
  $ 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
   430
  $ 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
   431
  $ 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
   432
  $ 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
   433
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
   434
  $ 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
   435
  > def func():
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   436
  >     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
   437
  > 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
   438
  $ 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
   439
  > 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
   440
  > 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
   441
  $ cat > $TESTTMP/extlibroot/lsub1/lsub2/used.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   442
  > 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
   443
  > 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
   444
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   445
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
   446
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
   447
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
   448
>=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
   449
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   450
  $ 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
   451
  $ cat > $TESTTMP/extlibroot/recursedown/abs/used.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   452
  > 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
   453
  > 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
   454
  $ 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
   455
  > 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
   456
  > 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
   457
  > 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
   458
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   459
  $ 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
   460
  $ cat > $TESTTMP/extlibroot/recursedown/legacy/used.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   461
  > 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
   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/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
   464
  > # 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
   465
  > 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
   466
  > 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
   467
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
  $ 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
   469
  > 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
   470
  > 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
   471
  > 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
   472
  > 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
   473
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   474
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
   475
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
   476
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
   477
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   478
  $ 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
   479
  $ cat > $TESTTMP/extlibroot/shadowing/used.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   480
  > 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
   481
  > 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
   482
  $ 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
   483
  > from __future__ import absolute_import
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   484
  > 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
   485
  > 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
   486
  $ 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
   487
  > from __future__ import absolute_import
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   488
  > 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
   489
  > NO_CHECK_EOF
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   490
29375
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   491
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
   492
feature.
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
  $ 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
   495
  $ 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
   496
  $ 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
   497
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
   498
  $ 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
   499
  > def func():
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   500
  >     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
   501
  > 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
   502
  $ 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
   503
  > 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
   504
  > 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
   505
  $ cat > $TESTTMP/absextroot/xsub1/xsub2/used.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   506
  > 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
   507
  > 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
   508
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   509
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
   510
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
   511
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
   512
  $ cat > $TESTTMP/absextroot/relimportee.py <<NO_CHECK_EOF
39725
be396c86f98e py3: add some b'' prefixes in tests/test-extension.t
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39707
diff changeset
   513
  > 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
   514
  > 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
   515
  $ 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
   516
  > 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
   517
  > 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
   518
  > from ... import relimportee
40183
0173ed47a873 tests: fix a repr on python3 in test-extension.t
Augie Fackler <augie@google.com>
parents: 40182
diff changeset
   519
  > 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
   520
  >     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
   521
  > 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
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   523
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
   524
runtime.
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   525
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
   526
  $ 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
   527
  > 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
   528
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   529
  > # 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
   530
  > 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
   531
  > 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
   532
  > 
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 getresult():
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   534
  >     result = []
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   535
  >     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
   536
  >     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
   537
  >     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
   538
  > 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
   539
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
   540
  $ 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
   541
  > 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
   542
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   543
  > # 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
   544
  > 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
   545
  > 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
   546
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   547
  > # 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
   548
  > 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
   549
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   550
  > 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
   551
  >     result = []
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(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
   553
  >     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
   554
  >     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
   555
  >     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
   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
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
   559
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
   560
  $ 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
   561
  > from __future__ import absolute_import
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   562
  > 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
   563
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   564
  > 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
   565
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   566
  > # "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
   567
  > # 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
   568
  > # 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
   569
  > # 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
   570
  > 
33097
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33052
diff changeset
   571
  > @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
   572
  > 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
   573
  >     from absextroot import absolute
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   574
  >     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
   575
  > 
33097
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33052
diff changeset
   576
  > @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
   577
  > 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
   578
  >     from . import relative
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   579
  >     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
   580
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   581
  > # 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
   582
  > 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
   583
  > 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
   584
  > 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
   585
  > 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
   586
  > 
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   587
  > 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
   588
  >     result = []
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   589
  >     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
   590
  >     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
   591
  >     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
   592
  >     result.append(legacydetail)
33531
9cbbf9118c6c demandimport: prefer loaded module over package attribute (issue5617)
Yuya Nishihara <yuya@tcha.org>
parents: 33529
diff changeset
   593
  >     result.append(proxied.detail)
40182
b348fe5f5c36 tests: so many b prefixes in test-extension.t
Augie Fackler <augie@google.com>
parents: 40181
diff changeset
   594
  >     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
   595
  > 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
   596
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   597
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
   598
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   599
  $ (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
   600
  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
   601
  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
   602
  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
   603
  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
   604
  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
   605
  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
   606
  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
   607
fcaf20175b1b demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29198
diff changeset
   608
  $ (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
   609
  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
   610
  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
   611
  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
   612
  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
   613
  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
   614
  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
   615
  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
   616
  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
   617
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   618
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
   619
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   620
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
   621
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   622
  $ 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
   623
  $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
   624
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
   625
  $ cat > $TESTTMP/notexist.py <<NO_CHECK_EOF
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   626
  > 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
   627
  > NO_CHECK_EOF
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   628
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
   629
  $ cat > $TESTTMP/checkrelativity.py <<NO_CHECK_EOF
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   630
  > from mercurial import registrar
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   631
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   632
  > command = registrar.command(cmdtable)
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   633
  > 
41508
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   634
  > # demand import avoids failure of importing notexist here, but only on
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   635
  > # Python 2.
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   636
  > 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
   637
  > 
33097
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33052
diff changeset
   638
  > @command(b'checkrelativity', [], norepo=True)
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   639
  > 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
   640
  >     try:
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   641
  >         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
   642
  >         return 1 # unintentional success
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   643
  >     except ImportError:
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   644
  >         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
   645
  > NO_CHECK_EOF
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   646
41508
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   647
Python 3's lazy importer verifies modules exist before returning the lazy
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   648
module stub. Our custom lazy importer for Python 2 always returns a stub.
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   649
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   650
  $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.checkrelativity=$TESTTMP/checkrelativity.py checkrelativity) || true
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   651
  *** failed to import extension checkrelativity from $TESTTMP/checkrelativity.py: No module named 'extlibroot.lsub1.lsub2.notexist' (py3 !)
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   652
  hg: unknown command 'checkrelativity' (py3 !)
b0865b5919c6 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41487
diff changeset
   653
  (use 'hg help' for a list of commands) (py3 !)
29736
14f077f7519a demandimport: import sub-module relatively as expected (issue5208)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29375
diff changeset
   654
34844
f0a62afd1e40 tests: move baduisetup() test out of "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 34843
diff changeset
   655
#endif
f0a62afd1e40 tests: move baduisetup() test out of "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 34843
diff changeset
   656
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
   657
(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
   658
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
   659
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
   660
33939
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   661
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: 33736
diff changeset
   662
  $ cat > $TESTTMP/baduisetup.py <<EOF
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   663
  > def uisetup(ui):
41738
c70bdd222dcd tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41736
diff changeset
   664
  >     1 / 0
33939
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   665
  > EOF
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   666
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   667
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: 33736
diff changeset
   668
  $ hg --config extensions.baduisetup=$TESTTMP/baduisetup.py version
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   669
  Traceback (most recent call last):
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   670
    File "*/mercurial/extensions.py", line *, in _runuisetup (glob)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   671
      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
   672
    File "$TESTTMP/baduisetup.py", line 2, in uisetup
41738
c70bdd222dcd tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41736
diff changeset
   673
      1 / 0
40184
c3b7d9c54edd tests: glob away some annoying py3 differences
Augie Fackler <augie@google.com>
parents: 40183
diff changeset
   674
  ZeroDivisionError: * by zero (glob)
c3b7d9c54edd tests: glob away some annoying py3 differences
Augie Fackler <augie@google.com>
parents: 40183
diff changeset
   675
  *** failed to set up extension baduisetup: * by zero (glob)
33939
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   676
  Mercurial Distributed SCM (version *) (glob)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   677
  (see https://mercurial-scm.org for more information)
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   678
  
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 46262
diff changeset
   679
  Copyright (C) 2005-* Olivia Mackall and others (glob)
33939
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
diff changeset
   680
  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: 33736
diff changeset
   681
  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: 33736
diff changeset
   682
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   683
  $ cd ..
9661
c4f6c02e33c4 hgweb: added test case for extension loading phases (issue1824)
Yuya Nishihara <yuya@tcha.org>
parents: 9410
diff changeset
   684
17014
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   685
hide outer repo
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   686
  $ hg init
50fbe9063ff2 tests: convert some 'hghave no-outer-repo' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16853
diff changeset
   687
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   688
  $ cat > empty.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   689
  > '''empty cmdtable
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   690
  > '''
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   691
  > cmdtable = {}
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   692
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   693
  $ emptypath=`pwd`/empty.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   694
  $ echo "empty = $emptypath" >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   695
  $ hg help empty
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   696
  empty extension - empty cmdtable
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   697
  
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   698
  no commands defined
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   699
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   700
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   701
  $ echo 'empty = !' >> $HGRCPATH
9661
c4f6c02e33c4 hgweb: added test case for extension loading phases (issue1824)
Yuya Nishihara <yuya@tcha.org>
parents: 9410
diff changeset
   702
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   703
  $ cat > debugextension.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   704
  > '''only debugcommands
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   705
  > '''
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   706
  > from mercurial import registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
   707
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   708
  > command = registrar.command(cmdtable)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
   709
  > @command(b'debugfoobar', [], b'hg debugfoobar')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   710
  > def debugfoobar(ui, repo, *args, **opts):
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   711
  >     "yet another debug command"
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
   712
  > @command(b'foo', [], b'hg foo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   713
  > def foo(ui, repo, *args, **opts):
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   714
  >     """yet another foo command
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   715
  >     This command has been DEPRECATED since forever.
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   716
  >     """
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   717
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   718
  $ debugpath=`pwd`/debugextension.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   719
  $ echo "debugextension = $debugpath" >> $HGRCPATH
9410
1c83938b6a8e extensions: load and configure extensions in well-defined phases
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
   720
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   721
  $ hg help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   722
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   723
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   724
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   725
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   726
  options:
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   727
  
39931
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39730
diff changeset
   728
   -T --template TEMPLATE display with template
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39730
diff changeset
   729
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   730
  (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
   731
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   732
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   733
  $ hg --verbose help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   734
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   735
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   736
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   737
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   738
  options:
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   739
  
39931
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39730
diff changeset
   740
   -T --template TEMPLATE display with template
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   741
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   742
  global options ([+] can be repeated):
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   743
  
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   744
   -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
   745
                          file
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   746
      --cwd DIR           change working directory
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   747
   -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
   748
                          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: 30024
diff changeset
   749
   -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: 30024
diff changeset
   750
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
   751
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
   752
                          debug)
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   753
      --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: 30024
diff changeset
   754
      --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: 30024
diff changeset
   755
      --debugger          start debugger
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   756
      --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
   757
      --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: 30024
diff changeset
   758
      --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: 30024
diff changeset
   759
      --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: 30024
diff changeset
   760
      --profile           print command execution profile
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   761
      --version           output version information and exit
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   762
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
   763
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   764
      --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
   765
                          (default: auto)
9128
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 8189
diff changeset
   766
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   767
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   768
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   769
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   770
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   771
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   772
  $ hg --debug help debugextension
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   773
  hg debugextensions
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   774
  
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   775
  show information about active extensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   776
  
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
   777
  options:
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   778
  
39931
0d703063d0c8 formatter: remove experimental marker from -T option
Yuya Nishihara <yuya@tcha.org>
parents: 39730
diff changeset
   779
   -T --template TEMPLATE display with template
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   780
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   781
  global options ([+] can be repeated):
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   782
  
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   783
   -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
   784
                          file
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   785
      --cwd DIR           change working directory
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   786
   -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
   787
                          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: 30024
diff changeset
   788
   -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: 30024
diff changeset
   789
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
   790
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
   791
                          debug)
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   792
      --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: 30024
diff changeset
   793
      --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: 30024
diff changeset
   794
      --debugger          start debugger
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   795
      --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
   796
      --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: 30024
diff changeset
   797
      --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: 30024
diff changeset
   798
      --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: 30024
diff changeset
   799
      --profile           print command execution profile
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   800
      --version           output version information and exit
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   801
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
   802
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
   803
      --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
   804
                          (default: auto)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   805
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   806
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   807
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   808
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   809
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   810
  $ echo 'debugextension = !' >> $HGRCPATH
7011
7da76778dbd7 Do not try to load extensions twice (issue811)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5523
diff changeset
   811
27152
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   812
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
   813
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   814
  $ hg help glog
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   815
  'glog' is provided by the following extension:
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   816
  
ac27b1b3be85 help: make help deprecated mention the extension
timeless <timeless@mozdev.org>
parents: 27142
diff changeset
   817
      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
   818
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
   819
  (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
   820
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   821
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
   822
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   823
  $ echo 'extdiff =' >> $HGRCPATH
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   824
  $ hg help extdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   825
  hg extdiff [OPT]... [FILE]...
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   826
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   827
  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
   828
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   829
      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
   830
      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
   831
      "-Npru".
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   832
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   833
      To select a different program, use the -p/--program option. The program
41487
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   834
      will be passed the names of two directories to compare, unless the --per-
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   835
      file option is specified (see below). To pass additional options to the
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   836
      program, use -o/--option. These will be passed before the names of the
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   837
      directories or files to compare.
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   838
  
46133
0a4d47f4337b extdiff: add --from/--to and deprecate -r, as was done for `hg diff`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46065
diff changeset
   839
      The --from, --to, and --change options work the same way they do for 'hg
0a4d47f4337b extdiff: add --from/--to and deprecate -r, as was done for `hg diff`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46065
diff changeset
   840
      diff'.
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   841
  
41487
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   842
      The --per-file option runs the external program repeatedly on each file to
41584
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   843
      diff, instead of once on two directories. By default, this happens one by
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   844
      one, where the next file diff is open in the external program only once
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   845
      the previous external program (for the previous file diff) has exited. If
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   846
      the external program has a graphical interface, it can open all the file
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   847
      diffs at once instead of one by one. See 'hg help -e extdiff' for
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   848
      information about how to tell Mercurial that a given program has a
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   849
      graphical interface.
41487
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   850
  
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   851
      The --confirm option will prompt the user before each invocation of the
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   852
      external program. It is ignored if --per-file isn't specified.
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   853
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
   854
  (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
   855
  
22117
c1d93edcf004 help: fold repeatable option message into option table header
Matt Mackall <mpm@selenic.com>
parents: 22113
diff changeset
   856
  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
   857
  
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   858
   -p --program CMD         comparison program to run
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   859
   -o --option OPT [+]      pass option to comparison program
46133
0a4d47f4337b extdiff: add --from/--to and deprecate -r, as was done for `hg diff`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46065
diff changeset
   860
      --from REV1           revision to diff from
0a4d47f4337b extdiff: add --from/--to and deprecate -r, as was done for `hg diff`
Martin von Zweigbergk <martinvonz@google.com>
parents: 46065
diff changeset
   861
      --to REV2             revision to diff to
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   862
   -c --change REV          change made by revision
41487
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   863
      --per-file            compare each file instead of revision snapshots
fa471151d269 extdiff: add --per-file and --confirm options
Ludovic Chabant <ludovic@chabant.com>
parents: 41068
diff changeset
   864
      --confirm             prompt user before each external program invocation
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30024
diff changeset
   865
      --patch               compare patches for two revisions
15145
ff26712a0c50 help: use RST to format option lists
Matt Mackall <mpm@selenic.com>
parents: 14849
diff changeset
   866
   -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
   867
   -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: 30024
diff changeset
   868
   -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
   869
  
22110
26f7c8033bed help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents: 21937
diff changeset
   870
  (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
   871
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   872
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   873
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   874
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   875
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   876
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   877
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   878
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   879
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   880
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   881
  $ hg help --extension extdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   882
  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
   883
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   884
  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
   885
  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
   886
  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
   887
  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
   888
  
37209
2208149c4b8e extdiff: document that it copies modified files back to working directory
Kyle Lippincott <spectral@google.com>
parents: 36458
diff changeset
   889
  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: 36458
diff changeset
   890
  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: 36458
diff changeset
   891
  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: 36458
diff changeset
   892
  
14327
d943412e2fba extdiff: grammar "allows to" -> "allows one to"
Javi Merino <cibervicho@gmail.com>
parents: 14286
diff changeset
   893
  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
   894
  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
   895
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   896
    [extdiff]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   897
    # 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
   898
    cdiff = gdiff -Nprc5
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   899
    ## or the old way:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   900
    #cmd.cdiff = gdiff
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   901
    #opts.cdiff = -Nprc5
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   902
  
23150
aff73c777b0b extdiff: allow a preconfigured merge-tool to be invoked
Matt Harbison <matt_harbison@yahoo.com>
parents: 22947
diff changeset
   903
    # 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
   904
    # 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
   905
    # 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
   906
    meld =
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   907
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   908
    # 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
   909
    # (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
   910
    # 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
   911
    # 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
   912
    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
   913
              "+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
   914
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   915
  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
   916
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   917
    $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
   918
    $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
   919
    $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
   920
    $root              - repository root
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   921
    $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
   922
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   923
  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
   924
  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
   925
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   926
    [extdiff]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   927
    kdiff3 =
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   928
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   929
    [diff-tools]
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   930
    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
   931
  
41584
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   932
  If a program has a graphical interface, it might be interesting to tell
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   933
  Mercurial about it. It will prevent the program from being mistakenly used in
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   934
  a terminal-only environment (such as an SSH terminal session), and will make
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   935
  'hg extdiff --per-file' open multiple file diffs at once instead of one by one
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   936
  (if you still want to open file diffs one by one, you can use the --confirm
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   937
  option).
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   938
  
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   939
  Declaring that a tool has a graphical interface can be done with the "gui"
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   940
  flag next to where "diffargs" are specified:
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   941
  
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   942
    [diff-tools]
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   943
    kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   944
    kdiff3.gui = true
a4cd77a425a3 extdiff: support tools that can be run simultaneously
Ludovic Chabant <ludovic@chabant.com>
parents: 41508
diff changeset
   945
  
27729
58f8b29c37ff minirst: change hgrole to use single quotes
timeless <timeless@mozdev.org>
parents: 27491
diff changeset
   946
  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
   947
  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
   948
  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
   949
  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
   950
  
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   951
  list of commands:
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   952
  
16853
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16744
diff changeset
   953
   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
   954
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
   955
  (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
   956
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   957
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   958
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   959
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   960
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   961
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   962
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   963
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   964
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   965
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   966
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   967
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   968
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   969
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   970
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
   971
14284
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   972
  $ echo 'extdiff = !' >> $HGRCPATH
1f9e11f65cd7 help: add -e/--extension switch to display extension help text
Henri Wiechers <hwiechers@gmail.com>
parents: 13191
diff changeset
   973
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   974
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
   975
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   976
  $ cat > multirevs.py <<EOF
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   977
  > from mercurial import commands, registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
   978
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
   979
  > 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
   980
  > """multirevs extension
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   981
  > Big multi-line module docstring."""
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
   982
  > @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
   983
  > 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
   984
  >     """multirevs command"""
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   985
  > EOF
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   986
  $ 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
   987
30610
66cffa87d2f2 help: make multirevs just an alias for revsets
Martin von Zweigbergk <martinvonz@google.com>
parents: 30485
diff changeset
   988
  $ hg help multirevs | tail
34948
ff178743e59b help: minor copy editing for grammar
Matt Harbison <matt_harbison@yahoo.com>
parents: 34845
diff changeset
   989
        used):
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   990
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30610
diff changeset
   991
          hg update :@
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
   992
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30610
diff changeset
   993
      - 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: 30610
diff changeset
   994
        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
   995
  
30771
c2cbc1b050db help: explain that revsets can be used where 1 or 2 revs are wanted
Martin von Zweigbergk <martinvonz@google.com>
parents: 30610
diff changeset
   996
          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
   997
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
   998
  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
   999
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1000
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1001
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1002
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1003
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1004
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1005
  $ 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
  1006
  hg multirevs ARG
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1007
  
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1008
  multirevs command
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1009
  
22110
26f7c8033bed help: tweak --verbose command help hint
Matt Mackall <mpm@selenic.com>
parents: 21937
diff changeset
  1010
  (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
  1011
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1012
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1013
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1014
  $ hg multirevs
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1015
  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
  1016
  hg multirevs ARG
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1017
  
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1018
  multirevs command
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1019
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1020
  (use 'hg multirevs -h' to show more help)
46262
9c9e0b4b2ca7 error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com>
parents: 46133
diff changeset
  1021
  [10]
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1022
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1023
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1024
14286
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1025
  $ echo "multirevs = !" >> $HGRCPATH
005a540e9aee help: add -c/--command flag to only show command help (issue2799)
Martin Geisler <mg@aragost.com>
parents: 14285
diff changeset
  1026
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12327
diff changeset
  1027
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
  1028
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1029
  $ 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
  1030
  > mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1031
  > strip =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1032
  > hgext.mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1033
  > hgext/mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1034
  > EOF
7011
7da76778dbd7 Do not try to load extensions twice (issue811)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5523
diff changeset
  1035
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1036
Show extensions:
19822
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19777
diff changeset
  1037
(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
  1038
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37209
diff changeset
  1039
#if no-extraextensions
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1040
  $ hg debugextensions
26351
8c7d8d5e1e0f mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents: 26263
diff changeset
  1041
  mq
19822
a194a33f8cb2 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19777
diff changeset
  1042
  strip
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37209
diff changeset
  1043
#endif
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1044
23624
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1045
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
  1046
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
  1047
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
  1048
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1049
  $ 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
  1050
  $ 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
  1051
  > """
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1052
  > 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
  1053
  > 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
  1054
  > """
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1055
  > 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
  1056
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1057
  > command = registrar.command(cmdtable)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1058
  > @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
  1059
  > 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
  1060
  >     """Does nothing"""
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1061
  >     ui.write(b"I do nothing. Yay\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1062
  > @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
  1063
  > 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
  1064
  >     """Writes 'Foo foo'"""
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1065
  >     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
  1066
  > EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1067
  $ 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
  1068
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1069
  $ 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
  1070
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1071
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
  1072
  $ 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
  1073
  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
  1074
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1075
  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
  1076
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1077
  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
  1078
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1079
   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
  1080
   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
  1081
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1082
  (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
  1083
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1084
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
  1085
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
  1086
  $ 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
  1087
  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
  1088
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1089
  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
  1090
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1091
  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
  1092
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1093
   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
  1094
   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
  1095
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1096
  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
  1097
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1098
   -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
  1099
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1100
      --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
  1101
   -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
  1102
                          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: 30024
diff changeset
  1103
   -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: 30024
diff changeset
  1104
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
  1105
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
  1106
                          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
  1107
      --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: 30024
diff changeset
  1108
      --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: 30024
diff changeset
  1109
      --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
  1110
      --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
  1111
      --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: 30024
diff changeset
  1112
      --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: 30024
diff changeset
  1113
      --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: 30024
diff changeset
  1114
      --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
  1115
      --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
  1116
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
  1117
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1118
      --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
  1119
                          (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
  1120
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1121
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
  1122
  $ 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
  1123
  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
  1124
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1125
  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
  1126
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1127
  (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
  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
  options:
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1130
  
30152
d65e246100ed help: backout f3c4edfd35e1 (mark boolean flags with [no-] in help) for now
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30024
diff changeset
  1131
    --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
  1132
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1133
  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
  1134
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1135
   -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
  1136
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1137
      --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
  1138
   -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
  1139
                          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: 30024
diff changeset
  1140
   -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: 30024
diff changeset
  1141
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
  1142
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
  1143
                          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
  1144
      --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: 30024
diff changeset
  1145
      --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: 30024
diff changeset
  1146
      --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
  1147
      --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
  1148
      --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: 30024
diff changeset
  1149
      --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: 30024
diff changeset
  1150
      --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: 30024
diff changeset
  1151
      --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
  1152
      --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
  1153
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
  1154
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1155
      --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
  1156
                          (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
  1157
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1158
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
  1159
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
  1160
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
  1161
  $ 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
  1162
  > """
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1163
  > 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
  1164
  > 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
  1165
  > """
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1166
  > 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
  1167
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1168
  > command = registrar.command(cmdtable)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1169
  > @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
  1170
  > 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
  1171
  >     """Does something"""
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1172
  >     ui.write(b"I do something. Yaaay\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1173
  > @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
  1174
  > 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
  1175
  >     """Writes 'Beep beep'"""
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1176
  >     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
  1177
  > EOF
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1178
  $ 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
  1179
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1180
  $ 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
  1181
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1182
  $ 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
  1183
  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
  1184
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1185
  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
  1186
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1187
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1188
  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
  1189
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1190
   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
  1191
   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
  1192
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1193
  (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
  1194
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1195
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
  1196
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
  1197
  $ 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
  1198
  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
  1199
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1200
  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
  1201
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1202
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1203
  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
  1204
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1205
   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
  1206
   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
  1207
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1208
  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
  1209
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1210
   -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
  1211
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1212
      --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
  1213
   -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
  1214
                          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: 30024
diff changeset
  1215
   -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: 30024
diff changeset
  1216
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
  1217
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
  1218
                          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
  1219
      --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: 30024
diff changeset
  1220
      --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: 30024
diff changeset
  1221
      --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
  1222
      --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
  1223
      --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: 30024
diff changeset
  1224
      --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: 30024
diff changeset
  1225
      --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: 30024
diff changeset
  1226
      --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
  1227
      --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
  1228
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
  1229
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1230
      --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
  1231
                          (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
  1232
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1233
  $ 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
  1234
  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
  1235
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1236
  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
  1237
  beep'
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1238
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1239
  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
  1240
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1241
   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
  1242
   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
  1243
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1244
  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
  1245
  
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1246
   -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
  1247
                          file
861ddedfb402 help: suggest '-v -e' to get built-in aliases for extensions (issue4461)
Chingis Dugarzhapov <chingis.dug@gmail.com>
parents: 23172
diff changeset
  1248
      --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
  1249
   -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
  1250
                          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: 30024
diff changeset
  1251
   -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: 30024
diff changeset
  1252
   -v --verbose           enable additional output
31104
8346b2f09e79 color: add the definition of '--color' in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30993
diff changeset
  1253
      --color TYPE        when to colorize (boolean, always, auto, never, or
31123
df0a0734304a color: update main documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31110
diff changeset
  1254
                          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
  1255
      --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: 30024
diff changeset
  1256
      --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: 30024
diff changeset
  1257
      --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
  1258
      --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
  1259
      --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: 30024
diff changeset
  1260
      --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: 30024
diff changeset
  1261
      --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: 30024
diff changeset
  1262
      --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
  1263
      --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
  1264
   -h --help              display help and exit
41010
e8e2a7656e83 help: hide default value for default-off flags
Martin von Zweigbergk <martinvonz@google.com>
parents: 41009
diff changeset
  1265
      --hidden            consider hidden changesets
30993
9c2977ceaa46 pager: move more behavior into core
Augie Fackler <augie@google.com>
parents: 30771
diff changeset
  1266
      --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
  1267
                          (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
  1268
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1269
Disabled extension commands:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 9802
diff changeset
  1270
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1271
  $ ORGHGRCPATH=$HGRCPATH
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1272
  $ HGRCPATH=
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1273
  $ export HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1274
  $ hg help email
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1275
  'email' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1276
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1277
      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
  1278
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1279
  (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
  1280
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1281
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1282
  $ hg qdel
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1283
  hg: unknown command 'qdel'
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1284
  'qdelete' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1285
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1286
      mq            manage a stack of patches
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1287
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1288
  (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
  1289
  [255]
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1290
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1291
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1292
  $ hg churn
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1293
  hg: unknown command 'churn'
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1294
  'churn' is provided by the following extension:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1295
  
15861
ee8f5e4ce7b8 minirst: simplify and standardize field list formatting
Olav Reinert <seroton10@gmail.com>
parents: 15447
diff changeset
  1296
      churn         command to display statistics about repository history
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1297
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1298
  (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
  1299
  [255]
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1300
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1301
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1302
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1303
Disabled extensions:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 9802
diff changeset
  1304
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1305
  $ hg help churn
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1306
  churn extension - command to display statistics about repository history
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1307
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1308
  (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
  1309
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1310
  $ hg help patchbomb
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1311
  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
  1312
  
30306
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1313
  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
  1314
  describes the series as a whole.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1315
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1316
  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
  1317
  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
  1318
  two or three body parts:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1319
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1320
  - The changeset description.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1321
  - [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
  1322
  - 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
  1323
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1324
  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
  1325
  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
  1326
  news readers, and in mail archives.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1327
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1328
  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
  1329
  file:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1330
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1331
    [email]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1332
    from = My Name <my@email>
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1333
    to = recipient1, recipient2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1334
    cc = cc1, cc2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1335
    bcc = bcc1, bcc2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1336
    reply-to = address1, address2, ...
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1337
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1338
  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
  1339
  "[email]" address settings.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1340
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1341
  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
  1342
  patchbomb.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1343
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1344
  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
  1345
  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
  1346
  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
  1347
  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
  1348
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1349
  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
  1350
  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
  1351
  never prompt by configuring an empty value:
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1352
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1353
    [email]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1354
    cc =
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1355
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1356
  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
  1357
  "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
  1358
  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
  1359
  
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1360
    [patchbomb]
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1361
    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
  1362
    intro=never  # never include an introduction message
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1363
    intro=always # always include an introduction message
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1364
  
31187
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1365
  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: 31123
diff changeset
  1366
  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: 31123
diff changeset
  1367
  
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1368
    [patchbomb]
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1369
    flagtemplate = "{separate(' ',
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1370
                              ifeq(branch, 'default', '', branch|upper),
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1371
                              flags)}"
6b8e1a08ef1d patchbomb: add config knob to generate flags by template (issue5354)
Yuya Nishihara <yuya@tcha.org>
parents: 31123
diff changeset
  1372
  
30306
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1373
  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
  1374
  "patchbomb.confirm" to true.
5581b294f3c6 help: show help for disabled extensions (issue5228)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30152
diff changeset
  1375
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1376
  (use 'hg help extensions' for information on enabling extensions)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1377
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1378
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1379
Broken disabled extension and command:
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1380
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1381
  $ mkdir hgext
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1382
  $ 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
  1383
  $ cat > hgext/broken.py <<NO_CHECK_EOF
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1384
  > "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
  1385
  > NO_CHECK_EOF
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1386
  $ 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
  1387
  > 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
  1388
  > import sys
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1389
  > sys.path.insert(0, os.environ['HGEXTPATH'])
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1390
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1391
  $ HGEXTPATH=`pwd`
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1392
  $ export HGEXTPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1393
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1394
  $ hg --config extensions.path=./path.py help broken
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1395
  broken extension - (no help text available)
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1396
  
29974
7109d5ddeb0c help: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29885
diff changeset
  1397
  (use 'hg help extensions' for information on enabling extensions)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
  1398
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1399
13191
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1400
  $ cat > hgext/forest.py <<EOF
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1401
  > cmdtable = None
38162
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1402
  > @command()
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1403
  > def f():
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1404
  >     pass
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1405
  > @command(123)
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1406
  > def g():
bdf344aea0ee extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org>
parents: 38018
diff changeset
  1407
  >     pass
13191
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
  1408
  > EOF
39221
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39190
diff changeset
  1409
  $ hg --config extensions.path=./path.py help foo
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39190
diff changeset
  1410
  abort: no such help topic: foo
d7ac6dafc609 tests: drop an unnecessary redirect to /dev/null
Matt Harbison <matt_harbison@yahoo.com>
parents: 39190
diff changeset
  1411
  (try 'hg help --keyword foo')
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12191
diff changeset
  1412
  [255]
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1413
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1414
  $ cat > throw.py <<EOF
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1415
  > 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
  1416
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
  1417
  > 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
  1418
  > class Bogon(Exception): pass
45947
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1419
  > # NB: version should be bytes; simulating extension not ported to py3
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1420
  > __version__ = '1.0.0'
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1421
  > @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
  1422
  > 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
  1423
  >     """throws an exception"""
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1424
  >     raise Bogon()
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1425
  > EOF
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1426
45947
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1427
Test extension without proper byteification of key attributes doesn't crash when
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1428
accessed.
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1429
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1430
  $ hg version -v --config extensions.throw=throw.py | grep '^ '
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1431
    throw  external  1.0.0
3db545fccac1 extensions: avoid a crash when the version isn't properly byteified on py3
Matt Harbison <matt_harbison@yahoo.com>
parents: 45008
diff changeset
  1432
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1433
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
  1434
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1435
  ** Unknown exception encountered with possibly-broken third-party extension "throw" 1.0.0
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1436
  ** which supports versions unknown of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1437
  ** Please disable "throw" and try your action again.
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1438
  ** 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
  1439
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1440
  ** Mercurial Distributed SCM * (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1441
  ** Extensions loaded: throw 1.0.0
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1442
45948
250e18437e30 tests: add a comment that we're purposely testing py2 extension attributes
Matt Harbison <matt_harbison@yahoo.com>
parents: 45947
diff changeset
  1443
empty declaration of supported version, extension complains (but doesn't choke if
250e18437e30 tests: add a comment that we're purposely testing py2 extension attributes
Matt Harbison <matt_harbison@yahoo.com>
parents: 45947
diff changeset
  1444
the value is improperly a str instead of bytes):
18224
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1445
  $ 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
  1446
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1447
  ** Unknown exception encountered with possibly-broken third-party extension "throw" 1.0.0
18224
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1448
  ** which supports versions unknown of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1449
  ** Please disable "throw" and try your action again.
18224
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1450
  ** 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
  1451
  ** Python * (glob)
0f9013112eba dispatch: handle empty `testedwith` value in extension
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17837
diff changeset
  1452
  ** Mercurial Distributed SCM (*) (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1453
  ** Extensions loaded: throw 1.0.0
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1454
45948
250e18437e30 tests: add a comment that we're purposely testing py2 extension attributes
Matt Harbison <matt_harbison@yahoo.com>
parents: 45947
diff changeset
  1455
If the extension specifies a buglink, show that (but don't choke if the value is
250e18437e30 tests: add a comment that we're purposely testing py2 extension attributes
Matt Harbison <matt_harbison@yahoo.com>
parents: 45947
diff changeset
  1456
improperly a str instead of bytes):
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1457
  $ 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
  1458
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1459
  $ 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
  1460
  $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1461
  ** Unknown exception encountered with possibly-broken third-party extension "throw" 1.0.0
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1462
  ** which supports versions unknown of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1463
  ** Please disable "throw" and try your action again.
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1464
  ** 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
  1465
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1466
  ** Mercurial Distributed SCM (*) (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1467
  ** Extensions loaded: throw 1.0.0
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1468
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1469
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
  1470
  $ echo "from mercurial import util" >> older.py
38018
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 37977
diff changeset
  1471
  $ echo "util.version = lambda:b'2.2'" >> older.py
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1472
  $ echo "testedwith = b'1.9.3'" >> older.py
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1473
  $ 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
  1474
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1475
  $ 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
  1476
  $ 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
  1477
  >   throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1478
  ** Unknown exception encountered with possibly-broken third-party extension "older" (version N/A)
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1479
  ** which supports versions 1.9 of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1480
  ** Please disable "older" and try your action again.
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1481
  ** 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
  1482
  ** 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
  1483
  ** Mercurial Distributed SCM (version 2.2)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1484
  ** Extensions loaded: older, throw 1.0.0
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1485
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1486
One extension only tested with older, one only with newer versions:
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1487
  $ 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
  1488
  $ rm -f older.pyc older.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1489
  $ 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
  1490
  $ 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
  1491
  >   throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1492
  ** Unknown exception encountered with possibly-broken third-party extension "older" (version N/A)
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1493
  ** which supports versions 1.9 of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1494
  ** Please disable "older" and try your action again.
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1495
  ** 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
  1496
  ** Python * (glob)
23870
9070e20057ae test-extension: use a realistic Mercurial version
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23869
diff changeset
  1497
  ** Mercurial Distributed SCM (version 2.1)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1498
  ** Extensions loaded: older, throw 1.0.0
23869
d9967b82394a test-extension: improve test readability
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23624
diff changeset
  1499
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1500
Older extension is tested with current version, the other only with newer:
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1501
  $ 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
  1502
  $ rm -f older.pyc older.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1503
  $ 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
  1504
  $ 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
  1505
  >   throw 2>&1 | egrep '^\*\*'
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1506
  ** Unknown exception encountered with possibly-broken third-party extension "throw" 1.0.0
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1507
  ** which supports versions 2.1 of Mercurial.
45952
a2104b9b1787 dispatch: quote the extension when printing the bug report
Matt Harbison <matt_harbison@yahoo.com>
parents: 45951
diff changeset
  1508
  ** Please disable "throw" and try your action again.
17228
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1509
  ** 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
  1510
  ** Python * (glob)
d1b49b02bc16 dispatch: fix traceback when extension was tested with newer versions only
Thomas Arendsen Hein <thomas@intevation.de>
parents: 17227
diff changeset
  1511
  ** Mercurial Distributed SCM (version 1.9.3)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1512
  ** Extensions loaded: older, throw 1.0.0
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1513
26263
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1514
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
  1515
  $ 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
  1516
  >   --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
  1517
  ** 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
  1518
  ** 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
  1519
  ** Python * (glob)
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1520
  ** Mercurial Distributed SCM (*) (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1521
  ** Extensions loaded: older, throw 1.0.0
26263
bf2bfc6f45fb traceback: allow providing a local support contact point
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26228
diff changeset
  1522
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1523
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
  1524
  $ 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
  1525
  $ 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
  1526
  $ 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
  1527
  >   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
  1528
  > fi
16744
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1529
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1530
  $ 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
  1531
  $ 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
  1532
  ** unknown exception encountered, please report by visiting
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1533
  ** 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
  1534
  ** Python * (glob)
1c9f58a6c8f1 dispatch: try and identify third-party extensions as sources of tracebacks
Augie Fackler <raf@durin42.com>
parents: 16242
diff changeset
  1535
  ** Mercurial Distributed SCM (*) (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1536
  ** Extensions loaded: throw 1.0.0
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1537
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1538
Patch version is ignored during compatibility check
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1539
  $ echo "testedwith = b'3.2'" >> throw.py
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1540
  $ 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
  1541
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1542
  $ 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
  1543
  $ 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
  1544
  ** unknown exception encountered, please report by visiting
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1545
  ** 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
  1546
  ** Python * (glob)
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1547
  ** Mercurial Distributed SCM (*) (glob)
45954
a120d1c9c704 dispatch: print the version of each extension in the bug report, if available
Matt Harbison <matt_harbison@yahoo.com>
parents: 45953
diff changeset
  1548
  ** Extensions loaded: throw 1.0.0
23871
b2d8f3685b06 dispatch: only check compatibility against major and minor versions (BC)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23870
diff changeset
  1549
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1550
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
  1551
  $ 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
  1552
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1553
  $ rm -Rf __pycache__
21937
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1554
  $ hg version -v
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1555
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1556
  (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
  1557
  
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 46262
diff changeset
  1558
  Copyright (C) 2005-* Olivia Mackall and others (glob)
21937
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1559
  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
  1560
  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
  1561
  
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1562
  Enabled extensions:
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1563
  
54ff2789d75e version: don't traceback if no extensions to list (issue4312)
Matt Mackall <mpm@selenic.com>
parents: 21849
diff changeset
  1564
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1565
  $ 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
  1566
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1567
  (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
  1568
  
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 46262
diff changeset
  1569
  Copyright (C) 2005-* Olivia Mackall and others (glob)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1570
  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
  1571
  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
  1572
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1573
  Enabled extensions:
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1574
  
27990
96bfd2875213 version: verbose list internal and external extension source (issue4731)
liscju <piotr.listkiewicz@gmail.com>
parents: 27729
diff changeset
  1575
    throw  external  1.2.3
38018
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 37977
diff changeset
  1576
  $ 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
  1577
  $ rm -f throw.pyc throw.pyo
33624
b4793cc8e1c0 tests: clear __pycache__ for PyPy compatibility (issue5638) (issue5642)
Yuya Nishihara <yuya@tcha.org>
parents: 33623
diff changeset
  1578
  $ rm -Rf __pycache__
29839
110ed1868f86 version: factor out mapping of internal/external labels
Yuya Nishihara <yuya@tcha.org>
parents: 29838
diff changeset
  1579
  $ 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
  1580
  Mercurial Distributed SCM (version *) (glob)
26421
4b0fc75f9403 urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents: 26351
diff changeset
  1581
  (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
  1582
  
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 46262
diff changeset
  1583
  Copyright (C) 2005-* Olivia Mackall and others (glob)
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1584
  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
  1585
  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
  1586
  
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1587
  Enabled extensions:
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1588
  
45008
e1ea913da2ed version: sort extensions by name in verbose mode
Matt Harbison <matt_harbison@yahoo.com>
parents: 44987
diff changeset
  1589
    strip  internal  
27990
96bfd2875213 version: verbose list internal and external extension source (issue4731)
liscju <piotr.listkiewicz@gmail.com>
parents: 27729
diff changeset
  1590
    throw  external  1.twentythree
21849
a3306b8cdc0f test-extension: add check for 'hg version -v' listing enabled extensions
Augie Fackler <raf@durin42.com>
parents: 21773
diff changeset
  1591
29838
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29736
diff changeset
  1592
  $ hg version -q --config extensions.throw=throw.py
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29736
diff changeset
  1593
  Mercurial Distributed SCM (version *) (glob)
8540133f91a1 version: always build list of extension versions
Yuya Nishihara <yuya@tcha.org>
parents: 29736
diff changeset
  1594
37500
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1595
Test template output:
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1596
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1597
  $ 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
  1598
  strip
8bb3899a0f47 formatter: make nested items somewhat readable in template output
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
  1599
29840
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1600
Test JSON output of version:
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1601
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1602
  $ hg version -Tjson
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1603
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1604
   {
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1605
    "extensions": [],
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1606
    "ver": "*" (glob)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1607
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1608
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1609
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1610
  $ hg version --config extensions.throw=throw.py -Tjson
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1611
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1612
   {
29885
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29869
diff changeset
  1613
    "extensions": [{"bundled": false, "name": "throw", "ver": "1.twentythree"}],
29840
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1614
    "ver": "3.2.2"
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1615
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1616
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1617
29885
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29869
diff changeset
  1618
  $ hg version --config extensions.strip= -Tjson
29840
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1619
  [
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1620
   {
29885
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29869
diff changeset
  1621
    "extensions": [{"bundled": true, "name": "strip", "ver": null}],
29840
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1622
    "ver": "*" (glob)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1623
   }
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1624
  ]
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1625
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1626
Test template output of version:
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1627
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1628
  $ hg version --config extensions.throw=throw.py --config extensions.strip= \
29885
42751543fa06 version: change "place" field of extension to "bundled" flag
Yuya Nishihara <yuya@tcha.org>
parents: 29869
diff changeset
  1629
  > -T'{extensions % "{name}  {pad(ver, 16)}  ({if(bundled, "internal", "external")})\n"}'
45008
e1ea913da2ed version: sort extensions by name in verbose mode
Matt Harbison <matt_harbison@yahoo.com>
parents: 44987
diff changeset
  1630
  strip                    (internal)
29840
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1631
  throw  1.twentythree     (external)
4435d4c951ec version: add formatter support
Yuya Nishihara <yuya@tcha.org>
parents: 29839
diff changeset
  1632
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1633
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
  1634
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1635
  $ 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
  1636
  > from mercurial import util
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1637
  > util.version = lambda: b'3.5.2'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1638
  > 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
  1639
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1640
  $ hg --config extensions.minversion=minversion1.py version
40463
cfa564037789 extensions: include current version in "invalid version" message
Boris Feld <boris.feld@octobus.net>
parents: 40369
diff changeset
  1641
  (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
  1642
  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
  1643
  (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
  1644
  
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 46262
diff changeset
  1645
  Copyright (C) 2005-* Olivia Mackall and others (glob)
27142
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1646
  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
  1647
  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
  1648
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1649
  $ 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
  1650
  > from mercurial import util
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1651
  > util.version = lambda: b'3.6'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1652
  > 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
  1653
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1654
  $ hg --config extensions.minversion=minversion2.py version 2>&1 | egrep '\(third'
40463
cfa564037789 extensions: include current version in "invalid version" message
Boris Feld <boris.feld@octobus.net>
parents: 40369
diff changeset
  1655
  (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
  1656
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1657
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
  1658
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1659
  $ 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
  1660
  > from mercurial import util
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1661
  > util.version = lambda: b'3.6.1'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1662
  > 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
  1663
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1664
  $ 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
  1665
  [1]
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1666
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1667
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
  1668
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1669
  $ 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
  1670
  > from mercurial import util
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1671
  > util.version = lambda: b'3.5'
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1672
  > 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
  1673
  > EOF
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1674
  $ 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
  1675
  [1]
060f83d219b9 extensions: refuse to load extensions if minimum hg version not met
Gregory Szorc <gregory.szorc@gmail.com>
parents: 26421
diff changeset
  1676
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1677
Restore HGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1678
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1679
  $ HGRCPATH=$ORGHGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1680
  $ export HGRCPATH
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1681
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1682
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
  1683
"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
  1684
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1685
  $ 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
  1686
  $ 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
  1687
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1688
  $ 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
  1689
  > 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
  1690
  > def reposetup(ui, repo):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1691
  >     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
  1692
  >     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
  1693
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1694
  $ 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
  1695
  $ 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
  1696
  $ 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
  1697
  adding a
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1698
  $ 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
  1699
  $ 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
  1700
  $ 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
  1701
  $ hg -R src status
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1702
  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
  1703
  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
  1704
39112
f2e645dc6a67 tests: conditionalize extension tests for extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38787
diff changeset
  1705
#if no-extraextensions
37977
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1706
  $ hg --cwd src debugextensions
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1707
  reposetup() for $TESTTMP/reposetup-test/src
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1708
  dodo (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1709
  dudu (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1710
  mq
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1711
  reposetuptest (untested!)
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1712
  strip
39112
f2e645dc6a67 tests: conditionalize extension tests for extra extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38787
diff changeset
  1713
#endif
37977
8ba0344f9fb1 debugextensions: process extensions loaded from the local repository too
Matt Harbison <matt_harbison@yahoo.com>
parents: 37957
diff changeset
  1714
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1715
  $ hg clone -U src clone-dst1
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1716
  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
  1717
  $ 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
  1718
  $ hg -q -R src push push-dst1
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1719
  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
  1720
  $ 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
  1721
  $ hg -q -R pull-src1 pull src
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1722
  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
  1723
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1724
  $ 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
  1725
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1726
  > # 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
  1727
  > reposetuptest = !
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1728
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1729
  $ hg clone -U src clone-dst2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1730
  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
  1731
  $ 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
  1732
  $ hg -q -R src push push-dst2
35393
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/src
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1734
  $ 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
  1735
  $ hg -q -R pull-src2 pull src
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1736
  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
  1737
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1738
  $ 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
  1739
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1740
  > # 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
  1741
  > 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
  1742
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1743
  $ hg clone -U src clone-dst3
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1744
  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
  1745
  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
  1746
  $ hg init push-dst3
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1747
  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
  1748
  $ hg -q -R src push push-dst3
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1749
  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
  1750
  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
  1751
  $ hg init pull-src3
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1752
  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
  1753
  $ hg -q -R pull-src3 pull src
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1754
  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
  1755
  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
  1756
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1757
  $ 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
  1758
  $ 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
  1759
  $ 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
  1760
  $ hg clone -U src clone-dst4
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1761
  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
  1762
  $ hg init push-dst4
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1763
  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
  1764
  $ hg -q -R src push push-dst4
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1765
  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
  1766
  $ hg init pull-src4
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1767
  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
  1768
  $ hg -q -R pull-src4 pull src
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1769
  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
  1770
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1771
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
  1772
  $ 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
  1773
  $ 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
  1774
  $ 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
  1775
  $ 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
  1776
  $ 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
  1777
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1778
  $ 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
  1779
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1780
  > # 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
  1781
  > reposetuptest = !
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23151
diff changeset
  1782
  > EOF
19777
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1783
  $ 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
  1784
  $ 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
  1785
  $ 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
  1786
  $ 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
  1787
  adding 1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1788
  $ 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
  1789
  $ 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
  1790
  $ 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
  1791
  $ 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
  1792
  adding 21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1793
  $ 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
  1794
  > sub21 = sub21
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1795
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1796
  $ 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
  1797
  adding .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1798
  $ 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
  1799
  $ 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
  1800
  $ 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
  1801
  adding 3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1802
  $ 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
  1803
  > sub1 = sub1
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1804
  > sub2 = sub2
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1805
  > sub3 = sub3
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1806
  > EOF
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1807
  $ 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
  1808
  adding .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1809
  $ 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
  1810
  $ 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
  1811
  $ 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
  1812
  $ 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
  1813
  $ hg -R parent status -S -A
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34948
diff changeset
  1814
  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
  1815
  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
  1816
  C .hgsub
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1817
  C .hgsubstate
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1818
  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
  1819
  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
  1820
  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
  1821
  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
  1822
  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
  1823
6f72e7d28b35 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 18748
diff changeset
  1824
  $ cd ..
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1825
32342
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1826
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: 32337
diff changeset
  1827
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1828
  $ hg init deprecated
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1829
  $ cd deprecated
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1830
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1831
  $ cat <<EOF > deprecatedcmd.py
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1832
  > def deprecatedcmd(repo, ui):
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1833
  >     pass
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1834
  > cmdtable = {
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1835
  >     b'deprecatedcmd': (deprecatedcmd, [], b''),
32342
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1836
  > }
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1837
  > EOF
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1838
  $ cat <<EOF > .hg/hgrc
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1839
  > [extensions]
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1840
  > deprecatedcmd = `pwd`/deprecatedcmd.py
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1841
  > mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1842
  > hgext.mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1843
  > hgext/mq = !
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1844
  > EOF
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1845
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1846
  $ hg deprecatedcmd > /dev/null
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1847
  *** 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: 32337
diff changeset
  1848
  *** (use @command decorator to register 'deprecatedcmd')
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1849
  hg: unknown command 'deprecatedcmd'
38787
5199c5b6fd29 dispatch: don't show list of commands on bogus command
Martin von Zweigbergk <martinvonz@google.com>
parents: 38534
diff changeset
  1850
  (use 'hg help' for a list of commands)
46262
9c9e0b4b2ca7 error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com>
parents: 46133
diff changeset
  1851
  [10]
32342
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1852
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1853
 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: 32337
diff changeset
  1854
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1855
  $ hg qseries --config extensions.mq= > /dev/null
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1856
  *** 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: 32337
diff changeset
  1857
  *** (use @command decorator to register 'deprecatedcmd')
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1858
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1859
  $ cd ..
e5fbf9687600 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org>
parents: 32337
diff changeset
  1860
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1861
Test synopsis and docstring extending
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1862
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1863
  $ hg init exthelp
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1864
  $ cat > exthelp.py <<EOF
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1865
  > from mercurial import commands, extensions
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1866
  > def exbookmarks(orig, *args, **opts):
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1867
  >     return orig(*args, **opts)
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1868
  > def uisetup(ui):
38018
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 37977
diff changeset
  1869
  >     synopsis = b' GREPME [--foo] [-x]'
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1870
  >     docstring = '''
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1871
  >     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
  1872
  >     '''
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
  1873
  >     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
  1874
  >                            synopsis, docstring)
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1875
  > EOF
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1876
  $ abspath=`pwd`/exthelp.py
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1877
  $ echo '[extensions]' >> $HGRCPATH
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1878
  $ echo "exthelp = $abspath" >> $HGRCPATH
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1879
  $ cd exthelp
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1880
  $ hg help bookmarks | grep GREPME
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1881
  hg bookmarks [OPTIONS]... [NAME]... GREPME [--foo] [-x]
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1882
      GREPME make sure that this is in the help!
32343
d47d7d3bd07b extensions: show deprecation warning for the use of cmdutil.command
Yuya Nishihara <yuya@tcha.org>
parents: 32342
diff changeset
  1883
  $ cd ..
24124
042d95beeee8 extensions: allow extending command synopsis and docstring
Ryan McElroy <rm@fb.com>
parents: 23871
diff changeset
  1884
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1885
Prohibit the use of unicode strings as the default value of options
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1886
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1887
  $ hg init $TESTTMP/opt-unicode-default
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1888
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1889
  $ 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: 39931
diff changeset
  1890
  > from __future__ import print_function
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1891
  > from mercurial import registrar
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1892
  > cmdtable = {}
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1893
  > command = registrar.command(cmdtable)
38018
a9ffb4a577d0 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 37977
diff changeset
  1894
  > @command(b'dummy', [(b'', b'opt', u'value', u'help')], 'ext [OPTIONS]')
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1895
  > def ext(*args, **opts):
40181
958b4c506d3a tests: ensure print() statements in test-extension.t all flush
Augie Fackler <augie@google.com>
parents: 39931
diff changeset
  1896
  >     print(opts[b'opt'], flush=True)
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1897
  > EOF
40872
07e181ed82ef py3: quote several instances of $PYTHON for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 40729
diff changeset
  1898
  $ "$PYTHON" $TESTTMP/unflush.py $TESTTMP/test_unicode_default_value.py
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1899
  $ cat > $TESTTMP/opt-unicode-default/.hg/hgrc << EOF
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1900
  > [extensions]
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1901
  > test_unicode_default_value = $TESTTMP/test_unicode_default_value.py
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1902
  > EOF
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1903
  $ 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
  1904
  *** failed to import extension test_unicode_default_value from $TESTTMP/test_unicode_default_value.py: unicode *'value' found in cmdtable.dummy (glob)
36269
4088e568a411 extensions: reject any unicode strings in tables before loading
Yuya Nishihara <yuya@tcha.org>
parents: 35773
diff changeset
  1905
  *** (use b'' to make it byte string)
34048
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1906
  hg: unknown command 'dummy'
0e0ac8f09048 extensions: prohibit unicode defaults
Christophe de Vienne <christophe@cdevienne.info>
parents: 33939
diff changeset
  1907
  (did you mean summary?)
46262
9c9e0b4b2ca7 error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com>
parents: 46133
diff changeset
  1908
  [10]