tests/test-config.t
author Pulkit Goyal <7895pulkit@gmail.com>
Sat, 20 Mar 2021 02:03:57 +0530
changeset 46820 821929d59e01
parent 46762 5a2212d40398
child 46867 915a60bf3cb6
permissions -rw-r--r--
rhg: add support for detailed exit code for ConfigParseError This patch adds basic support for detailed exit code to rhg with support for ConfigParseError. For now, if parsing the config results in error, we silently fallbacks to `false`. The python version in this case emits a traceback. Differential Revision: https://phab.mercurial-scm.org/D10253
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17015
73d20de5f30b tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents: 12082
diff changeset
     1
hide outer repo
73d20de5f30b tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents: 12082
diff changeset
     2
  $ hg init
73d20de5f30b tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents: 12082
diff changeset
     3
22275
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     4
Invalid syntax: no value
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     5
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     6
  $ cat > .hg/hgrc << EOF
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     7
  > novaluekey
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     8
  > EOF
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
     9
  $ hg showconfig
45909
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    10
  config error at $TESTTMP/.hg/hgrc:1: novaluekey
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    11
  [30]
22275
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    12
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    13
Invalid syntax: no key
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    14
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    15
  $ cat > .hg/hgrc << EOF
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    16
  > =nokeyvalue
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    17
  > EOF
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    18
  $ hg showconfig
45909
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    19
  config error at $TESTTMP/.hg/hgrc:1: =nokeyvalue
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    20
  [30]
22275
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    21
22276
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    22
Test hint about invalid syntax from leading white space
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    23
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    24
  $ cat > .hg/hgrc << EOF
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    25
  >  key=value
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    26
  > EOF
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    27
  $ hg showconfig
45909
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    28
  config error at $TESTTMP/.hg/hgrc:1: unexpected leading whitespace:  key=value
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    29
  [30]
22276
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    30
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    31
  $ cat > .hg/hgrc << EOF
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    32
  >  [section]
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    33
  > key=value
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    34
  > EOF
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    35
  $ hg showconfig
45909
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    36
  config error at $TESTTMP/.hg/hgrc:1: unexpected leading whitespace:  [section]
9dc1351d0b5f errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents: 45846
diff changeset
    37
  [30]
22276
b13b99d39a46 config: highlight parse error caused by leading spaces (issue3214)
Razvan Cojocaru <razvan.cojocaru93@gmail.com>
parents: 22275
diff changeset
    38
22275
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    39
Reset hgrc
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    40
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    41
  $ echo > .hg/hgrc
d9a8017dce10 test-config: add tests for invalid syntax
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 19087
diff changeset
    42
19086
8fb8dce3f9b6 tests: rename from test-config-case.t to test-config.t for centralization
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 17015
diff changeset
    43
Test case sensitive configuration
8fb8dce3f9b6 tests: rename from test-config-case.t to test-config.t for centralization
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 17015
diff changeset
    44
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22367
diff changeset
    45
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22367
diff changeset
    46
  > [Section]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22367
diff changeset
    47
  > KeY = Case Sensitive
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22367
diff changeset
    48
  > key = lower case
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22367
diff changeset
    49
  > EOF
3425
ec6f400cff4d Use a case-sensitive version of SafeConfigParser everywhere
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    50
12082
5e2216a35839 tests: unify test-config-case
Adrian Buehlmann <adrian@cadifra.com>
parents: 4528
diff changeset
    51
  $ hg showconfig Section
5e2216a35839 tests: unify test-config-case
Adrian Buehlmann <adrian@cadifra.com>
parents: 4528
diff changeset
    52
  Section.KeY=Case Sensitive
5e2216a35839 tests: unify test-config-case
Adrian Buehlmann <adrian@cadifra.com>
parents: 4528
diff changeset
    53
  Section.key=lower case
3425
ec6f400cff4d Use a case-sensitive version of SafeConfigParser everywhere
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    54
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    55
  $ hg showconfig Section -Tjson
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    56
  [
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    57
   {
42728
60789444acd6 config: fix fm.data() handling of defaultvalue
Navaneeth Suresh <navaneeths1998@gmail.com>
parents: 42727
diff changeset
    58
    "defaultvalue": null,
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    59
    "name": "Section.KeY",
31006
f07ca071a058 runtests: set web.ipv6 if we use IPv6
Jun Wu <quark@fb.com>
parents: 30623
diff changeset
    60
    "source": "*.hgrc:*", (glob)
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    61
    "value": "Case Sensitive"
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    62
   },
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    63
   {
42728
60789444acd6 config: fix fm.data() handling of defaultvalue
Navaneeth Suresh <navaneeths1998@gmail.com>
parents: 42727
diff changeset
    64
    "defaultvalue": null,
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    65
    "name": "Section.key",
31006
f07ca071a058 runtests: set web.ipv6 if we use IPv6
Jun Wu <quark@fb.com>
parents: 30623
diff changeset
    66
    "source": "*.hgrc:*", (glob)
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    67
    "value": "lower case"
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    68
   }
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    69
  ]
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    70
  $ hg showconfig Section.KeY -Tjson
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    71
  [
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    72
   {
42727
049b2ac3252e config: remove pycompat.bytestr() for defaultvalue
Navaneeth Suresh <navaneeths1998@gmail.com>
parents: 42699
diff changeset
    73
    "defaultvalue": null,
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    74
    "name": "Section.KeY",
31006
f07ca071a058 runtests: set web.ipv6 if we use IPv6
Jun Wu <quark@fb.com>
parents: 30623
diff changeset
    75
    "source": "*.hgrc:*", (glob)
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    76
    "value": "Case Sensitive"
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    77
   }
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    78
  ]
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    79
  $ hg showconfig -Tjson | tail -7
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    80
   {
42728
60789444acd6 config: fix fm.data() handling of defaultvalue
Navaneeth Suresh <navaneeths1998@gmail.com>
parents: 42727
diff changeset
    81
    "defaultvalue": null,
29954
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    82
    "name": "*", (glob)
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    83
    "source": "*", (glob)
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    84
    "value": "*" (glob)
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    85
   }
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    86
  ]
80fef5251099 config: add template support
Mathias De Maré <mathias.demare@gmail.com>
parents: 29412
diff changeset
    87
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    88
Test config default of various types:
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    89
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    90
 {"defaultvalue": ""} for -T'json(defaultvalue)' looks weird, but that's
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    91
 how the templater works. Unknown keywords are evaluated to "".
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    92
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    93
 dynamicdefault
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    94
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    95
  $ hg config --config alias.foo= alias -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    96
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    97
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    98
    "name": "alias.foo",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
    99
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   100
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   101
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   102
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   103
  $ hg config --config alias.foo= alias -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   104
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   105
   {"defaultvalue": ""}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   106
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   107
  $ hg config --config alias.foo= alias -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   108
  
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   109
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   110
 null
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   111
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   112
  $ hg config --config auth.cookiefile= auth -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   113
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   114
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   115
    "defaultvalue": null,
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   116
    "name": "auth.cookiefile",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   117
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   118
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   119
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   120
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   121
  $ hg config --config auth.cookiefile= auth -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   122
  [
43337
7e20b705da5b formatter: fix handling of None value in templater mapping
Yuya Nishihara <yuya@tcha.org>
parents: 43336
diff changeset
   123
   {"defaultvalue": null}
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   124
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   125
  $ hg config --config auth.cookiefile= auth -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   126
  
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   127
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   128
 false
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   129
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   130
  $ hg config --config commands.commit.post-status= commands -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   131
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   132
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   133
    "defaultvalue": false,
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   134
    "name": "commands.commit.post-status",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   135
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   136
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   137
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   138
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   139
  $ hg config --config commands.commit.post-status= commands -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   140
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   141
   {"defaultvalue": false}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   142
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   143
  $ hg config --config commands.commit.post-status= commands -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   144
  False
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   145
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   146
 true
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   147
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   148
  $ hg config --config format.dotencode= format -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   149
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   150
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   151
    "defaultvalue": true,
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   152
    "name": "format.dotencode",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   153
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   154
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   155
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   156
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   157
  $ hg config --config format.dotencode= format -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   158
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   159
   {"defaultvalue": true}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   160
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   161
  $ hg config --config format.dotencode= format -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   162
  True
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   163
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   164
 bytes
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   165
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   166
  $ hg config --config commands.resolve.mark-check= commands -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   167
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   168
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   169
    "defaultvalue": "none",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   170
    "name": "commands.resolve.mark-check",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   171
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   172
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   173
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   174
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   175
  $ hg config --config commands.resolve.mark-check= commands -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   176
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   177
   {"defaultvalue": "none"}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   178
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   179
  $ hg config --config commands.resolve.mark-check= commands -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   180
  none
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   181
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   182
 empty list
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   183
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   184
  $ hg config --config commands.show.aliasprefix= commands -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   185
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   186
   {
43336
a71578ec6257 config: add support for defaultvalue of list of printable elements
Yuya Nishihara <yuya@tcha.org>
parents: 43335
diff changeset
   187
    "defaultvalue": [],
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   188
    "name": "commands.show.aliasprefix",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   189
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   190
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   191
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   192
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   193
  $ hg config --config commands.show.aliasprefix= commands -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   194
  [
43336
a71578ec6257 config: add support for defaultvalue of list of printable elements
Yuya Nishihara <yuya@tcha.org>
parents: 43335
diff changeset
   195
   {"defaultvalue": []}
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   196
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   197
  $ hg config --config commands.show.aliasprefix= commands -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   198
  
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   199
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   200
 nonempty list
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   201
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   202
  $ hg config --config progress.format= progress -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   203
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   204
   {
43336
a71578ec6257 config: add support for defaultvalue of list of printable elements
Yuya Nishihara <yuya@tcha.org>
parents: 43335
diff changeset
   205
    "defaultvalue": ["topic", "bar", "number", "estimate"],
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   206
    "name": "progress.format",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   207
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   208
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   209
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   210
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   211
  $ hg config --config progress.format= progress -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   212
  [
43336
a71578ec6257 config: add support for defaultvalue of list of printable elements
Yuya Nishihara <yuya@tcha.org>
parents: 43335
diff changeset
   213
   {"defaultvalue": ["topic", "bar", "number", "estimate"]}
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   214
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   215
  $ hg config --config progress.format= progress -T'{defaultvalue}\n'
43336
a71578ec6257 config: add support for defaultvalue of list of printable elements
Yuya Nishihara <yuya@tcha.org>
parents: 43335
diff changeset
   216
  topic bar number estimate
43335
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   217
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   218
 int
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   219
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   220
  $ hg config --config profiling.freq= profiling -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   221
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   222
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   223
    "defaultvalue": 1000,
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   224
    "name": "profiling.freq",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   225
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   226
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   227
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   228
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   229
  $ hg config --config profiling.freq= profiling -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   230
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   231
   {"defaultvalue": 1000}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   232
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   233
  $ hg config --config profiling.freq= profiling -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   234
  1000
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   235
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   236
 float
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   237
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   238
  $ hg config --config profiling.showmax= profiling -Tjson
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   239
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   240
   {
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   241
    "defaultvalue": 0.999,
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   242
    "name": "profiling.showmax",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   243
    "source": "--config",
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   244
    "value": ""
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   245
   }
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   246
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   247
  $ hg config --config profiling.showmax= profiling -T'json(defaultvalue)'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   248
  [
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   249
   {"defaultvalue": 0.999}
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   250
  ]
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   251
  $ hg config --config profiling.showmax= profiling -T'{defaultvalue}\n'
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   252
  0.999
242ad45b60b3 config: fix -Tjson to not crash due to unsupported defaultvalue types
Yuya Nishihara <yuya@tcha.org>
parents: 42728
diff changeset
   253
30623
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   254
Test empty config source:
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   255
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   256
  $ cat <<EOF > emptysource.py
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   257
  > def reposetup(ui, repo):
36753
a22915edc279 py3: byte-stringify test-config.t and test-config-env.py
Yuya Nishihara <yuya@tcha.org>
parents: 35400
diff changeset
   258
  >     ui.setconfig(b'empty', b'source', b'value')
30623
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   259
  > EOF
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   260
  $ cp .hg/hgrc .hg/hgrc.orig
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   261
  $ cat <<EOF >> .hg/hgrc
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   262
  > [extensions]
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   263
  > emptysource = `pwd`/emptysource.py
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   264
  > EOF
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   265
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   266
  $ hg config --debug empty.source
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   267
  read config from: * (glob)
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   268
  none: value
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   269
  $ hg config empty.source -Tjson
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   270
  [
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   271
   {
42727
049b2ac3252e config: remove pycompat.bytestr() for defaultvalue
Navaneeth Suresh <navaneeths1998@gmail.com>
parents: 42699
diff changeset
   272
    "defaultvalue": null,
30623
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   273
    "name": "empty.source",
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   274
    "source": "",
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   275
    "value": "value"
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   276
   }
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   277
  ]
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   278
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   279
  $ cp .hg/hgrc.orig .hg/hgrc
201b44c8875c ui: do not translate empty configsource() to 'none' (API)
Yuya Nishihara <yuya@tcha.org>
parents: 29954
diff changeset
   280
19087
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   281
Test "%unset"
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   282
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   283
  $ cat >> $HGRCPATH <<EOF
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   284
  > [unsettest]
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   285
  > local-hgrcpath = should be unset (HGRCPATH)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   286
  > %unset local-hgrcpath
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   287
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   288
  > global = should be unset (HGRCPATH)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   289
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   290
  > both = should be unset (HGRCPATH)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   291
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   292
  > set-after-unset = should be unset (HGRCPATH)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   293
  > EOF
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   294
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   295
  $ cat >> .hg/hgrc <<EOF
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   296
  > [unsettest]
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   297
  > local-hgrc = should be unset (.hg/hgrc)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   298
  > %unset local-hgrc
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   299
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   300
  > %unset global
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   301
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   302
  > both = should be unset (.hg/hgrc)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   303
  > %unset both
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   304
  > 
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   305
  > set-after-unset = should be unset (.hg/hgrc)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   306
  > %unset set-after-unset
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   307
  > set-after-unset = should be set (.hg/hgrc)
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   308
  > EOF
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   309
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   310
  $ hg showconfig unsettest
7d82ad4b3727 config: discard "%unset" values defined in the other files read in previously
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 19086
diff changeset
   311
  unsettest.set-after-unset=should be set (.hg/hgrc)
22316
816be4ca4ae2 config: exit non zero on non-existent config option (issue4247)
Aaron Kushner <akushner@fb.com>
parents: 19087
diff changeset
   312
816be4ca4ae2 config: exit non zero on non-existent config option (issue4247)
Aaron Kushner <akushner@fb.com>
parents: 19087
diff changeset
   313
Test exit code when no config matches
816be4ca4ae2 config: exit non zero on non-existent config option (issue4247)
Aaron Kushner <akushner@fb.com>
parents: 19087
diff changeset
   314
816be4ca4ae2 config: exit non zero on non-existent config option (issue4247)
Aaron Kushner <akushner@fb.com>
parents: 19087
diff changeset
   315
  $ hg config Section.idontexist
816be4ca4ae2 config: exit non zero on non-existent config option (issue4247)
Aaron Kushner <akushner@fb.com>
parents: 19087
diff changeset
   316
  [1]
29412
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   317
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   318
sub-options in [paths] aren't expanded
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   319
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   320
  $ cat > .hg/hgrc << EOF
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   321
  > [paths]
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   322
  > foo = ~/foo
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   323
  > foo:suboption = ~/foo
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   324
  > EOF
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   325
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   326
  $ hg showconfig paths
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   327
  paths.foo:suboption=~/foo
b62bce819d0c ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com>
parents: 23348
diff changeset
   328
  paths.foo=$TESTTMP/foo
31125
3f8f53190d6a chg: deduplicate error handling of ui.system()
Yuya Nishihara <yuya@tcha.org>
parents: 31006
diff changeset
   329
3f8f53190d6a chg: deduplicate error handling of ui.system()
Yuya Nishihara <yuya@tcha.org>
parents: 31006
diff changeset
   330
edit failure
3f8f53190d6a chg: deduplicate error handling of ui.system()
Yuya Nishihara <yuya@tcha.org>
parents: 31006
diff changeset
   331
3f8f53190d6a chg: deduplicate error handling of ui.system()
Yuya Nishihara <yuya@tcha.org>
parents: 31006
diff changeset
   332
  $ HGEDITOR=false hg config --edit
3f8f53190d6a chg: deduplicate error handling of ui.system()
Yuya Nishihara <yuya@tcha.org>
parents: 31006
diff changeset
   333
  abort: edit failed: false exited with status 1
45846
8d72e29ad1e0 errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents: 45800
diff changeset
   334
  [10]
31690
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   335
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   336
config affected by environment variables
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   337
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   338
  $ EDITOR=e1 VISUAL=e2 hg config --debug | grep 'ui\.editor'
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   339
  $VISUAL: ui.editor=e2
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   340
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   341
  $ VISUAL=e2 hg config --debug --config ui.editor=e3 | grep 'ui\.editor'
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   342
  --config: ui.editor=e3
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   343
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   344
  $ PAGER=p1 hg config --debug | grep 'pager\.pager'
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   345
  $PAGER: pager.pager=p1
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   346
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   347
  $ PAGER=p1 hg config --debug --config pager.pager=p2 | grep 'pager\.pager'
d83e51654c8a rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents: 31125
diff changeset
   348
  --config: pager.pager=p2
33329
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   349
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   350
verify that aliases are evaluated as well
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   351
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   352
  $ hg init aliastest
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   353
  $ cd aliastest
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   354
  $ cat > .hg/hgrc << EOF
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   355
  > [ui]
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   356
  > user = repo user
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   357
  > EOF
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   358
  $ touch index
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   359
  $ unset HGUSER
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   360
  $ hg ci -Am test
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   361
  adding index
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   362
  $ hg log --template '{author}\n'
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   363
  repo user
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   364
  $ cd ..
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   365
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   366
alias has lower priority
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   367
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   368
  $ hg init aliaspriority
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   369
  $ cd aliaspriority
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   370
  $ cat > .hg/hgrc << EOF
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   371
  > [ui]
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   372
  > user = alias user
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   373
  > username = repo user
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   374
  > EOF
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   375
  $ touch index
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   376
  $ unset HGUSER
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   377
  $ hg ci -Am test
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   378
  adding index
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   379
  $ hg log --template '{author}\n'
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   380
  repo user
e714159860fd configitems: add alias support in config
David Demelier <demelier.david@gmail.com>
parents: 31690
diff changeset
   381
  $ cd ..
42093
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   382
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   383
configs should be read in lexicographical order
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   384
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   385
  $ mkdir configs
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   386
  $ for i in `$TESTDIR/seq.py 10 99`; do
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   387
  >    printf "[section]\nkey=$i" > configs/$i.rc
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   388
  > done
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   389
  $ HGRCPATH=configs hg config section.key
edbcf5b239f9 config: read configs from directories in lexicographical order
Martin von Zweigbergk <martinvonz@google.com>
parents: 36753
diff changeset
   390
  99
46488
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   391
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   392
Configuration priority
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   393
======================
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   394
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   395
setup necessary file
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   396
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   397
  $ cat > file-A.rc << EOF
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   398
  > [config-test]
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   399
  > basic = value-A
46489
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   400
  > pre-include= value-A
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   401
  > %include ./included.rc
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   402
  > post-include= value-A
46654
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   403
  > [command-templates]
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   404
  > log = "value-A\n"
46488
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   405
  > EOF
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   406
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   407
  $ cat > file-B.rc << EOF
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   408
  > [config-test]
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   409
  > basic = value-B
46654
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   410
  > [ui]
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   411
  > logtemplate = "value-B\n"
46488
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   412
  > EOF
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   413
46489
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   414
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   415
  $ cat > included.rc << EOF
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   416
  > [config-test]
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   417
  > pre-include= value-included
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   418
  > post-include= value-included
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   419
  > EOF
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   420
46655
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   421
  $ cat > file-C.rc << EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   422
  > %include ./included-alias-C.rc
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   423
  > [ui]
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   424
  > logtemplate = "value-C\n"
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   425
  > EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   426
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   427
  $ cat > included-alias-C.rc << EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   428
  > [command-templates]
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   429
  > log = "value-included\n"
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   430
  > EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   431
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   432
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   433
  $ cat > file-D.rc << EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   434
  > [command-templates]
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   435
  > log = "value-D\n"
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   436
  > %include ./included-alias-D.rc
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   437
  > EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   438
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   439
  $ cat > included-alias-D.rc << EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   440
  > [ui]
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   441
  > logtemplate = "value-included\n"
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   442
  > EOF
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   443
46488
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   444
Simple order checking
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   445
---------------------
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   446
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   447
If file B is read after file A, value from B overwrite value from A.
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   448
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   449
  $ HGRCPATH="file-A.rc:file-B.rc" hg config config-test.basic
4ae85340d5eb config: add a test for priority when includes are involved
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46146
diff changeset
   450
  value-B
46489
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   451
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   452
Ordering from include
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   453
---------------------
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   454
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   455
value from an include overwrite value defined before the include, but not the one defined after the include
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   456
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   457
  $ HGRCPATH="file-A.rc" hg config config-test.pre-include
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   458
  value-included
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   459
  $ HGRCPATH="file-A.rc" hg config config-test.post-include
9d49ae51aa56 config: test priority involving include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46488
diff changeset
   460
  value-A
46490
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   461
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   462
command line override
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   463
---------------------
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   464
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   465
  $ HGRCPATH="file-A.rc:file-B.rc" hg config config-test.basic --config config-test.basic=value-CLI
821775843caf config: test priority involving the command line
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46489
diff changeset
   466
  value-CLI
46654
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   467
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   468
Alias ordering
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   469
--------------
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   470
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   471
The official config is now `command-templates.log`, the historical
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   472
`ui.logtemplate` is a valid alternative for it.
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   473
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   474
When both are defined, The config value read the last "win", this should keep
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   475
being true if the config have other alias. In other word, the config value read
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   476
earlier will be considered "lower level" and the config read later would be
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   477
considered "higher level". And higher level values wins.
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   478
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   479
  $ HGRCPATH="file-A.rc" hg log -r .
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   480
  value-A
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   481
  $ HGRCPATH="file-B.rc" hg log -r .
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   482
  value-B
377689cc295f config: test priority involving alias
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46490
diff changeset
   483
  $ HGRCPATH="file-A.rc:file-B.rc" hg log -r .
46662
b91a695b3b08 config: use level to properly deal with value priority
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46656
diff changeset
   484
  value-B
46655
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   485
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   486
Alias and include
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   487
-----------------
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   488
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   489
The pre/post include priority should also apply when tie-breaking alternatives.
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   490
See the case above for details about the two config options used.
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   491
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   492
  $ HGRCPATH="file-C.rc" hg log -r .
46662
b91a695b3b08 config: use level to properly deal with value priority
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46656
diff changeset
   493
  value-C
46655
702bb73d7330 config: test priority involving alias and include
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46654
diff changeset
   494
  $ HGRCPATH="file-D.rc" hg log -r .
46662
b91a695b3b08 config: use level to properly deal with value priority
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46656
diff changeset
   495
  value-included
46656
87f8b3add56b config: test priority involving alias and cli
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46655
diff changeset
   496
87f8b3add56b config: test priority involving alias and cli
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46655
diff changeset
   497
command line override
87f8b3add56b config: test priority involving alias and cli
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46655
diff changeset
   498
---------------------
87f8b3add56b config: test priority involving alias and cli
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46655
diff changeset
   499
87f8b3add56b config: test priority involving alias and cli
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46655
diff changeset
   500
  $ HGRCPATH="file-A.rc:file-B.rc" hg log -r . --config ui.logtemplate="value-CLI\n"
46662
b91a695b3b08 config: use level to properly deal with value priority
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46656
diff changeset
   501
  value-CLI