##// END OF EJS Templates
censor: document the censor.policy option (issue6909)...
marmoute -
r53123:cd72a88c default
parent child Browse files
Show More
@@ -1,143 +1,144
1 # Copyright (C) 2015 - Mike Edgar <adgar@google.com>
1 # Copyright (C) 2015 - Mike Edgar <adgar@google.com>
2 #
2 #
3 # This extension enables removal of file content at a given revision,
3 # This extension enables removal of file content at a given revision,
4 # rewriting the data/metadata of successive revisions to preserve revision log
4 # rewriting the data/metadata of successive revisions to preserve revision log
5 # integrity.
5 # integrity.
6
6
7 """erase file content at a given revision
7 """erase file content at a given revision
8
8
9 The censor command instructs Mercurial to erase all content of a file at a given
9 The censor command instructs Mercurial to erase all content of a file at a given
10 revision *without updating the changeset hash.* This allows existing history to
10 revision *without updating the changeset hash.* This allows existing history to
11 remain valid while preventing future clones/pulls from receiving the erased
11 remain valid while preventing future clones/pulls from receiving the erased
12 data.
12 data.
13
13
14 Typical uses for censor are due to security or legal requirements, including::
14 Typical uses for censor are due to security or legal requirements, including::
15
15
16 * Passwords, private keys, cryptographic material
16 * Passwords, private keys, cryptographic material
17 * Licensed data/code/libraries for which the license has expired
17 * Licensed data/code/libraries for which the license has expired
18 * Personally Identifiable Information or other private data
18 * Personally Identifiable Information or other private data
19
19
20 Censored nodes can interrupt mercurial's typical operation whenever the excised
20 Censored nodes can interrupt mercurial's typical operation whenever the excised
21 data needs to be materialized. Some commands, like ``hg cat``/``hg revert``,
21 data needs to be materialized. Some commands, like ``hg cat``/``hg revert``,
22 simply fail when asked to produce censored data. Others, like ``hg verify`` and
22 simply fail when asked to produce censored data. Others, like ``hg verify`` and
23 ``hg update``, must be capable of tolerating censored data to continue to
23 ``hg update``, must be capable of tolerating censored data to continue to
24 function in a meaningful way. Such commands only tolerate censored file
24 function in a meaningful way. Such commands only tolerate censored file
25 As having a censored version in a checkout is impractical. The current head
25 As having a censored version in a checkout is impractical. The current head
26 revisions of the repository are checked. If the revision to be censored is in
26 revisions of the repository are checked. If the revision to be censored is in
27 any of them the command will abort.
27 any of them the command will abort. You can configure this behavior using the
28 following option:
28
29
29 A few informative commands such as ``hg grep`` will unconditionally
30 `censor.policy`
30 ignore censored data and merely report that it was encountered.
31 :config-doc:`censor.policy`
31 """
32 """
32
33
33
34
34 from mercurial.i18n import _
35 from mercurial.i18n import _
35 from mercurial.node import short
36 from mercurial.node import short
36
37
37 from mercurial import (
38 from mercurial import (
38 error,
39 error,
39 registrar,
40 registrar,
40 scmutil,
41 scmutil,
41 )
42 )
42
43
43 cmdtable = {}
44 cmdtable = {}
44 command = registrar.command(cmdtable)
45 command = registrar.command(cmdtable)
45 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
46 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
46 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
47 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
47 # be specifying the version(s) of Mercurial they are tested with, or
48 # be specifying the version(s) of Mercurial they are tested with, or
48 # leave the attribute unspecified.
49 # leave the attribute unspecified.
49 testedwith = b'ships-with-hg-core'
50 testedwith = b'ships-with-hg-core'
50
51
51
52
52 @command(
53 @command(
53 b'censor',
54 b'censor',
54 [
55 [
55 (
56 (
56 b'r',
57 b'r',
57 b'rev',
58 b'rev',
58 [],
59 [],
59 _(b'censor file from specified revision'),
60 _(b'censor file from specified revision'),
60 _(b'REV'),
61 _(b'REV'),
61 ),
62 ),
62 (
63 (
63 b'',
64 b'',
64 b'check-heads',
65 b'check-heads',
65 True,
66 True,
66 _(b'check that repository heads are not affected'),
67 _(b'check that repository heads are not affected'),
67 ),
68 ),
68 (b't', b'tombstone', b'', _(b'replacement tombstone data'), _(b'TEXT')),
69 (b't', b'tombstone', b'', _(b'replacement tombstone data'), _(b'TEXT')),
69 ],
70 ],
70 _(b'-r REV [-t TEXT] [FILE]'),
71 _(b'-r REV [-t TEXT] [FILE]'),
71 helpcategory=command.CATEGORY_MAINTENANCE,
72 helpcategory=command.CATEGORY_MAINTENANCE,
72 )
73 )
73 def censor(ui, repo, path, rev=(), tombstone=b'', check_heads=True, **opts):
74 def censor(ui, repo, path, rev=(), tombstone=b'', check_heads=True, **opts):
74 with repo.wlock(), repo.lock():
75 with repo.wlock(), repo.lock():
75 return _docensor(
76 return _docensor(
76 ui,
77 ui,
77 repo,
78 repo,
78 path,
79 path,
79 rev,
80 rev,
80 tombstone,
81 tombstone,
81 check_heads=check_heads,
82 check_heads=check_heads,
82 **opts,
83 **opts,
83 )
84 )
84
85
85
86
86 def _docensor(ui, repo, path, revs=(), tombstone=b'', check_heads=True, **opts):
87 def _docensor(ui, repo, path, revs=(), tombstone=b'', check_heads=True, **opts):
87 if not path:
88 if not path:
88 raise error.Abort(_(b'must specify file path to censor'))
89 raise error.Abort(_(b'must specify file path to censor'))
89 if not revs:
90 if not revs:
90 raise error.Abort(_(b'must specify revisions to censor'))
91 raise error.Abort(_(b'must specify revisions to censor'))
91
92
92 wctx = repo[None]
93 wctx = repo[None]
93
94
94 m = scmutil.match(wctx, (path,))
95 m = scmutil.match(wctx, (path,))
95 if m.anypats() or len(m.files()) != 1:
96 if m.anypats() or len(m.files()) != 1:
96 raise error.Abort(_(b'can only specify an explicit filename'))
97 raise error.Abort(_(b'can only specify an explicit filename'))
97 path = m.files()[0]
98 path = m.files()[0]
98 flog = repo.file(path)
99 flog = repo.file(path)
99 if not len(flog):
100 if not len(flog):
100 raise error.Abort(_(b'cannot censor file with no history'))
101 raise error.Abort(_(b'cannot censor file with no history'))
101
102
102 revs = scmutil.revrange(repo, revs)
103 revs = scmutil.revrange(repo, revs)
103 if not revs:
104 if not revs:
104 raise error.Abort(_(b'no matching revisions'))
105 raise error.Abort(_(b'no matching revisions'))
105 file_nodes = set()
106 file_nodes = set()
106 for r in revs:
107 for r in revs:
107 try:
108 try:
108 ctx = repo[r]
109 ctx = repo[r]
109 file_nodes.add(ctx.filectx(path).filenode())
110 file_nodes.add(ctx.filectx(path).filenode())
110 except error.LookupError:
111 except error.LookupError:
111 raise error.Abort(_(b'file does not exist at revision %s') % ctx)
112 raise error.Abort(_(b'file does not exist at revision %s') % ctx)
112
113
113 if check_heads:
114 if check_heads:
114 heads = []
115 heads = []
115 repo_heads = repo.heads()
116 repo_heads = repo.heads()
116 msg = b'checking for the censored content in %d heads\n'
117 msg = b'checking for the censored content in %d heads\n'
117 msg %= len(repo_heads)
118 msg %= len(repo_heads)
118 ui.status(msg)
119 ui.status(msg)
119 for headnode in repo_heads:
120 for headnode in repo_heads:
120 hc = repo[headnode]
121 hc = repo[headnode]
121 if path in hc and hc.filenode(path) in file_nodes:
122 if path in hc and hc.filenode(path) in file_nodes:
122 heads.append(hc)
123 heads.append(hc)
123 if heads:
124 if heads:
124 headlist = b', '.join([short(c.node()) for c in heads])
125 headlist = b', '.join([short(c.node()) for c in heads])
125 raise error.Abort(
126 raise error.Abort(
126 _(b'cannot censor file in heads (%s)') % headlist,
127 _(b'cannot censor file in heads (%s)') % headlist,
127 hint=_(b'clean/delete and commit first'),
128 hint=_(b'clean/delete and commit first'),
128 )
129 )
129
130
130 msg = b'checking for the censored content in the working directory\n'
131 msg = b'checking for the censored content in the working directory\n'
131 ui.status(msg)
132 ui.status(msg)
132 wp = wctx.parents()
133 wp = wctx.parents()
133 if ctx.node() in [p.node() for p in wp]:
134 if ctx.node() in [p.node() for p in wp]:
134 raise error.Abort(
135 raise error.Abort(
135 _(b'cannot censor working directory'),
136 _(b'cannot censor working directory'),
136 hint=_(b'clean/delete/update first'),
137 hint=_(b'clean/delete/update first'),
137 )
138 )
138
139
139 msg = b'censoring %d file revisions\n'
140 msg = b'censoring %d file revisions\n'
140 msg %= len(file_nodes)
141 msg %= len(file_nodes)
141 ui.status(msg)
142 ui.status(msg)
142 with repo.transaction(b'censor') as tr:
143 with repo.transaction(b'censor') as tr:
143 flog.censorrevision(tr, file_nodes, tombstone=tombstone)
144 flog.censorrevision(tr, file_nodes, tombstone=tombstone)
@@ -1,2976 +1,2982
1 # configitems.toml - centralized declaration of configuration options
1 # configitems.toml - centralized declaration of configuration options
2 #
2 #
3 # This file contains declarations of the core Mercurial configuration options.
3 # This file contains declarations of the core Mercurial configuration options.
4 #
4 #
5 # # Structure
5 # # Structure
6 #
6 #
7 # items: array of config items
7 # items: array of config items
8 # templates: mapping of template name to template declaration
8 # templates: mapping of template name to template declaration
9 # template-applications: array of template applications
9 # template-applications: array of template applications
10 #
10 #
11 # # Elements
11 # # Elements
12 #
12 #
13 # ## Item
13 # ## Item
14 #
14 #
15 # Declares a core Mercurial option.
15 # Declares a core Mercurial option.
16 #
16 #
17 # - section: string (required)
17 # - section: string (required)
18 # - name: string (required)
18 # - name: string (required)
19 # - default-type: boolean, changes how `default` is read
19 # - default-type: boolean, changes how `default` is read
20 # - default: any
20 # - default: any
21 # - generic: boolean
21 # - generic: boolean
22 # - priority: integer, only if `generic` is true
22 # - priority: integer, only if `generic` is true
23 # - alias: list of 2-tuples of strings
23 # - alias: list of 2-tuples of strings
24 # - experimental: boolean
24 # - experimental: boolean
25 # - documentation: string
25 # - documentation: string
26 # - in_core_extension: string
26 # - in_core_extension: string
27 #
27 #
28 # ## Template
28 # ## Template
29 #
29 #
30 # Declares a group of options to be re-used for multiple sections.
30 # Declares a group of options to be re-used for multiple sections.
31 #
31 #
32 # - all the same fields as `Item`, except `section` and `name`
32 # - all the same fields as `Item`, except `section` and `name`
33 # - `suffix` (string, required)
33 # - `suffix` (string, required)
34 #
34 #
35 # ## Template applications
35 # ## Template applications
36 #
36 #
37 # Uses a `Template` to instanciate its options in a given section.
37 # Uses a `Template` to instanciate its options in a given section.
38 #
38 #
39 # - template: string (required, must match a `Template` name)
39 # - template: string (required, must match a `Template` name)
40 # - section: string (required)
40 # - section: string (required)
41
41
42 [[items]]
42 [[items]]
43 section = "alias"
43 section = "alias"
44 name = ".*"
44 name = ".*"
45 default-type = "dynamic"
45 default-type = "dynamic"
46 generic = true
46 generic = true
47
47
48 [[items]]
48 [[items]]
49 section = "auth"
49 section = "auth"
50 name = "cookiefile"
50 name = "cookiefile"
51
51
52 # bookmarks.pushing: internal hack for discovery
52 # bookmarks.pushing: internal hack for discovery
53 [[items]]
53 [[items]]
54 section = "bookmarks"
54 section = "bookmarks"
55 name = "pushing"
55 name = "pushing"
56 default-type = "list_type"
56 default-type = "list_type"
57
57
58 # bundle.mainreporoot: internal hack for bundlerepo
58 # bundle.mainreporoot: internal hack for bundlerepo
59 [[items]]
59 [[items]]
60 section = "bundle"
60 section = "bundle"
61 name = "mainreporoot"
61 name = "mainreporoot"
62 default = ""
62 default = ""
63
63
64 [[items]]
64 [[items]]
65 section = "censor"
65 section = "censor"
66 name = "policy"
66 name = "policy"
67 default = "abort"
67 default = "abort"
68 experimental = true
68 documentation="""Control how to react when accessing censored content.
69 Accepted value: "abort", "ignore". Defaults to abort.
70
71 A few informative commands such as ``hg grep`` will unconditionally ignore
72 censored data and merely report that it was encountered.
73 """
74
69
75
70 [[items]]
76 [[items]]
71 section = "chgserver"
77 section = "chgserver"
72 name = "idletimeout"
78 name = "idletimeout"
73 default = 3600
79 default = 3600
74
80
75 [[items]]
81 [[items]]
76 section = "chgserver"
82 section = "chgserver"
77 name = "skiphash"
83 name = "skiphash"
78 default = false
84 default = false
79
85
80 [[items]]
86 [[items]]
81 section = "cmdserver"
87 section = "cmdserver"
82 name = "log"
88 name = "log"
83
89
84 [[items]]
90 [[items]]
85 section = "cmdserver"
91 section = "cmdserver"
86 name = "max-log-files"
92 name = "max-log-files"
87 default = 7
93 default = 7
88
94
89 [[items]]
95 [[items]]
90 section = "cmdserver"
96 section = "cmdserver"
91 name = "max-log-size"
97 name = "max-log-size"
92 default = "1 MB"
98 default = "1 MB"
93
99
94 [[items]]
100 [[items]]
95 section = "cmdserver"
101 section = "cmdserver"
96 name = "max-repo-cache"
102 name = "max-repo-cache"
97 default = 0
103 default = 0
98 experimental = true
104 experimental = true
99
105
100 [[items]]
106 [[items]]
101 section = "cmdserver"
107 section = "cmdserver"
102 name = "message-encodings"
108 name = "message-encodings"
103 default-type = "list_type"
109 default-type = "list_type"
104
110
105 [[items]]
111 [[items]]
106 section = "cmdserver"
112 section = "cmdserver"
107 name = "shutdown-on-interrupt"
113 name = "shutdown-on-interrupt"
108 default = true
114 default = true
109
115
110 [[items]]
116 [[items]]
111 section = "cmdserver"
117 section = "cmdserver"
112 name = "track-log"
118 name = "track-log"
113 default-type = "lambda"
119 default-type = "lambda"
114 default = [ "chgserver", "cmdserver", "repocache",]
120 default = [ "chgserver", "cmdserver", "repocache",]
115
121
116 [[items]]
122 [[items]]
117 section = "color"
123 section = "color"
118 name = ".*"
124 name = ".*"
119 generic = true
125 generic = true
120
126
121 [[items]]
127 [[items]]
122 section = "color"
128 section = "color"
123 name = "mode"
129 name = "mode"
124 default = "auto"
130 default = "auto"
125
131
126 [[items]]
132 [[items]]
127 section = "color"
133 section = "color"
128 name = "pagermode"
134 name = "pagermode"
129 default-type = "dynamic"
135 default-type = "dynamic"
130
136
131 [[items]]
137 [[items]]
132 section = "command-templates"
138 section = "command-templates"
133 name = "graphnode"
139 name = "graphnode"
134 alias = [["ui", "graphnodetemplate"]]
140 alias = [["ui", "graphnodetemplate"]]
135
141
136 [[items]]
142 [[items]]
137 section = "command-templates"
143 section = "command-templates"
138 name = "log"
144 name = "log"
139 alias = [["ui", "logtemplate"]]
145 alias = [["ui", "logtemplate"]]
140
146
141 [[items]]
147 [[items]]
142 section = "command-templates"
148 section = "command-templates"
143 name = "mergemarker"
149 name = "mergemarker"
144 default = '{node|short} {ifeq(tags, "tip", "", ifeq(tags, "", "", "{tags} "))}{if(bookmarks, "{bookmarks} ")}{ifeq(branch, "default", "", "{branch} ")}- {author|user}: {desc|firstline}'
150 default = '{node|short} {ifeq(tags, "tip", "", ifeq(tags, "", "", "{tags} "))}{if(bookmarks, "{bookmarks} ")}{ifeq(branch, "default", "", "{branch} ")}- {author|user}: {desc|firstline}'
145 alias = [["ui", "mergemarkertemplate"]]
151 alias = [["ui", "mergemarkertemplate"]]
146
152
147 [[items]]
153 [[items]]
148 section = "command-templates"
154 section = "command-templates"
149 name = "oneline-summary"
155 name = "oneline-summary"
150
156
151 [[items]]
157 [[items]]
152 section = "command-templates"
158 section = "command-templates"
153 name = "oneline-summary.*"
159 name = "oneline-summary.*"
154 default-type = "dynamic"
160 default-type = "dynamic"
155 generic = true
161 generic = true
156
162
157 [[items]]
163 [[items]]
158 section = "command-templates"
164 section = "command-templates"
159 name = "pre-merge-tool-output"
165 name = "pre-merge-tool-output"
160 alias = [["ui", "pre-merge-tool-output-template"]]
166 alias = [["ui", "pre-merge-tool-output-template"]]
161
167
162 [[items]]
168 [[items]]
163 section = "commands"
169 section = "commands"
164 name = "commit.post-status"
170 name = "commit.post-status"
165 default = false
171 default = false
166
172
167 [[items]]
173 [[items]]
168 section = "commands"
174 section = "commands"
169 name = "grep.all-files"
175 name = "grep.all-files"
170 default = false
176 default = false
171 experimental = true
177 experimental = true
172
178
173 [[items]]
179 [[items]]
174 section = "commands"
180 section = "commands"
175 name = "merge.require-rev"
181 name = "merge.require-rev"
176 default = false
182 default = false
177
183
178 [[items]]
184 [[items]]
179 section = "commands"
185 section = "commands"
180 name = "push.require-revs"
186 name = "push.require-revs"
181 default = false
187 default = false
182
188
183 # Rebase related configuration moved to core because other extension are doing
189 # Rebase related configuration moved to core because other extension are doing
184 # strange things. For example, shelve import the extensions to reuse some bit
190 # strange things. For example, shelve import the extensions to reuse some bit
185 # without formally loading it.
191 # without formally loading it.
186 [[items]]
192 [[items]]
187 section = "commands"
193 section = "commands"
188 name = "rebase.requiredest"
194 name = "rebase.requiredest"
189 default = false
195 default = false
190
196
191 [[items]]
197 [[items]]
192 section = "commands"
198 section = "commands"
193 name = "resolve.confirm"
199 name = "resolve.confirm"
194 default = false
200 default = false
195
201
196 [[items]]
202 [[items]]
197 section = "commands"
203 section = "commands"
198 name = "resolve.explicit-re-merge"
204 name = "resolve.explicit-re-merge"
199 default = false
205 default = false
200
206
201 [[items]]
207 [[items]]
202 section = "commands"
208 section = "commands"
203 name = "resolve.mark-check"
209 name = "resolve.mark-check"
204 default = "none"
210 default = "none"
205
211
206 [[items]]
212 [[items]]
207 section = "commands"
213 section = "commands"
208 name = "show.aliasprefix"
214 name = "show.aliasprefix"
209 default-type = "list_type"
215 default-type = "list_type"
210
216
211 [[items]]
217 [[items]]
212 section = "commands"
218 section = "commands"
213 name = "status.relative"
219 name = "status.relative"
214 default = false
220 default = false
215
221
216 [[items]]
222 [[items]]
217 section = "commands"
223 section = "commands"
218 name = "status.skipstates"
224 name = "status.skipstates"
219 default = []
225 default = []
220 experimental = true
226 experimental = true
221
227
222 [[items]]
228 [[items]]
223 section = "commands"
229 section = "commands"
224 name = "status.terse"
230 name = "status.terse"
225 default = ""
231 default = ""
226
232
227 [[items]]
233 [[items]]
228 section = "commands"
234 section = "commands"
229 name = "status.verbose"
235 name = "status.verbose"
230 default = false
236 default = false
231
237
232 [[items]]
238 [[items]]
233 section = "commands"
239 section = "commands"
234 name = "update.check"
240 name = "update.check"
235
241
236 [[items]]
242 [[items]]
237 section = "commands"
243 section = "commands"
238 name = "update.requiredest"
244 name = "update.requiredest"
239 default = false
245 default = false
240
246
241 [[items]]
247 [[items]]
242 section = "committemplate"
248 section = "committemplate"
243 name = ".*"
249 name = ".*"
244 generic = true
250 generic = true
245
251
246 [[items]]
252 [[items]]
247 section = "convert"
253 section = "convert"
248 name = "bzr.saverev"
254 name = "bzr.saverev"
249 default = true
255 default = true
250
256
251 [[items]]
257 [[items]]
252 section = "convert"
258 section = "convert"
253 name = "cvsps.cache"
259 name = "cvsps.cache"
254 default = true
260 default = true
255
261
256 [[items]]
262 [[items]]
257 section = "convert"
263 section = "convert"
258 name = "cvsps.fuzz"
264 name = "cvsps.fuzz"
259 default = 60
265 default = 60
260
266
261 [[items]]
267 [[items]]
262 section = "convert"
268 section = "convert"
263 name = "cvsps.logencoding"
269 name = "cvsps.logencoding"
264
270
265 [[items]]
271 [[items]]
266 section = "convert"
272 section = "convert"
267 name = "cvsps.mergefrom"
273 name = "cvsps.mergefrom"
268
274
269 [[items]]
275 [[items]]
270 section = "convert"
276 section = "convert"
271 name = "cvsps.mergeto"
277 name = "cvsps.mergeto"
272
278
273 [[items]]
279 [[items]]
274 section = "convert"
280 section = "convert"
275 name = "git.committeractions"
281 name = "git.committeractions"
276 default-type = "lambda"
282 default-type = "lambda"
277 default = [ "messagedifferent",]
283 default = [ "messagedifferent",]
278
284
279 [[items]]
285 [[items]]
280 section = "convert"
286 section = "convert"
281 name = "git.extrakeys"
287 name = "git.extrakeys"
282 default-type = "list_type"
288 default-type = "list_type"
283
289
284 [[items]]
290 [[items]]
285 section = "convert"
291 section = "convert"
286 name = "git.findcopiesharder"
292 name = "git.findcopiesharder"
287 default = false
293 default = false
288
294
289 [[items]]
295 [[items]]
290 section = "convert"
296 section = "convert"
291 name = "git.remoteprefix"
297 name = "git.remoteprefix"
292 default = "remote"
298 default = "remote"
293
299
294 [[items]]
300 [[items]]
295 section = "convert"
301 section = "convert"
296 name = "git.renamelimit"
302 name = "git.renamelimit"
297 default = 400
303 default = 400
298
304
299 [[items]]
305 [[items]]
300 section = "convert"
306 section = "convert"
301 name = "git.saverev"
307 name = "git.saverev"
302 default = true
308 default = true
303
309
304 [[items]]
310 [[items]]
305 section = "convert"
311 section = "convert"
306 name = "git.similarity"
312 name = "git.similarity"
307 default = 50
313 default = 50
308
314
309 [[items]]
315 [[items]]
310 section = "convert"
316 section = "convert"
311 name = "git.skipsubmodules"
317 name = "git.skipsubmodules"
312 default = false
318 default = false
313
319
314 [[items]]
320 [[items]]
315 section = "convert"
321 section = "convert"
316 name = "hg.clonebranches"
322 name = "hg.clonebranches"
317 default = false
323 default = false
318
324
319 [[items]]
325 [[items]]
320 section = "convert"
326 section = "convert"
321 name = "hg.ignoreerrors"
327 name = "hg.ignoreerrors"
322 default = false
328 default = false
323
329
324 [[items]]
330 [[items]]
325 section = "convert"
331 section = "convert"
326 name = "hg.preserve-hash"
332 name = "hg.preserve-hash"
327 default = false
333 default = false
328
334
329 [[items]]
335 [[items]]
330 section = "convert"
336 section = "convert"
331 name = "hg.revs"
337 name = "hg.revs"
332
338
333 [[items]]
339 [[items]]
334 section = "convert"
340 section = "convert"
335 name = "hg.saverev"
341 name = "hg.saverev"
336 default = false
342 default = false
337
343
338 [[items]]
344 [[items]]
339 section = "convert"
345 section = "convert"
340 name = "hg.sourcename"
346 name = "hg.sourcename"
341
347
342 [[items]]
348 [[items]]
343 section = "convert"
349 section = "convert"
344 name = "hg.startrev"
350 name = "hg.startrev"
345
351
346 [[items]]
352 [[items]]
347 section = "convert"
353 section = "convert"
348 name = "hg.tagsbranch"
354 name = "hg.tagsbranch"
349 default = "default"
355 default = "default"
350
356
351 [[items]]
357 [[items]]
352 section = "convert"
358 section = "convert"
353 name = "hg.usebranchnames"
359 name = "hg.usebranchnames"
354 default = true
360 default = true
355
361
356 [[items]]
362 [[items]]
357 section = "convert"
363 section = "convert"
358 name = "ignoreancestorcheck"
364 name = "ignoreancestorcheck"
359 default = false
365 default = false
360 experimental = true
366 experimental = true
361
367
362 [[items]]
368 [[items]]
363 section = "convert"
369 section = "convert"
364 name = "localtimezone"
370 name = "localtimezone"
365 default = false
371 default = false
366
372
367 [[items]]
373 [[items]]
368 section = "convert"
374 section = "convert"
369 name = "p4.encoding"
375 name = "p4.encoding"
370 default-type = "dynamic"
376 default-type = "dynamic"
371
377
372 [[items]]
378 [[items]]
373 section = "convert"
379 section = "convert"
374 name = "p4.startrev"
380 name = "p4.startrev"
375 default = 0
381 default = 0
376
382
377 [[items]]
383 [[items]]
378 section = "convert"
384 section = "convert"
379 name = "skiptags"
385 name = "skiptags"
380 default = false
386 default = false
381
387
382 [[items]]
388 [[items]]
383 section = "convert"
389 section = "convert"
384 name = "svn.branches"
390 name = "svn.branches"
385
391
386 [[items]]
392 [[items]]
387 section = "convert"
393 section = "convert"
388 name = "svn.dangerous-set-commit-dates"
394 name = "svn.dangerous-set-commit-dates"
389 default = false
395 default = false
390
396
391 [[items]]
397 [[items]]
392 section = "convert"
398 section = "convert"
393 name = "svn.debugsvnlog"
399 name = "svn.debugsvnlog"
394 default = true
400 default = true
395
401
396 [[items]]
402 [[items]]
397 section = "convert"
403 section = "convert"
398 name = "svn.startrev"
404 name = "svn.startrev"
399 default = 0
405 default = 0
400
406
401 [[items]]
407 [[items]]
402 section = "convert"
408 section = "convert"
403 name = "svn.tags"
409 name = "svn.tags"
404
410
405 [[items]]
411 [[items]]
406 section = "convert"
412 section = "convert"
407 name = "svn.trunk"
413 name = "svn.trunk"
408
414
409 [[items]]
415 [[items]]
410 section = "debug"
416 section = "debug"
411 name = "bundling-stats"
417 name = "bundling-stats"
412 default = false
418 default = false
413 documentation = "Display extra information about the bundling process."
419 documentation = "Display extra information about the bundling process."
414
420
415 [[items]]
421 [[items]]
416 section = "debug"
422 section = "debug"
417 name = "dirstate.delaywrite"
423 name = "dirstate.delaywrite"
418 default = 0
424 default = 0
419
425
420 [[items]]
426 [[items]]
421 section = "debug"
427 section = "debug"
422 name = "revlog.debug-delta"
428 name = "revlog.debug-delta"
423 default = false
429 default = false
424
430
425 [[items]]
431 [[items]]
426 section = "debug"
432 section = "debug"
427 name = "revlog.verifyposition.changelog"
433 name = "revlog.verifyposition.changelog"
428 default = ""
434 default = ""
429
435
430 [[items]]
436 [[items]]
431 section = "debug"
437 section = "debug"
432 name = "unbundling-stats"
438 name = "unbundling-stats"
433 default = false
439 default = false
434 documentation = "Display extra information about the unbundling process."
440 documentation = "Display extra information about the unbundling process."
435
441
436 [[items]]
442 [[items]]
437 section = "defaults"
443 section = "defaults"
438 name = ".*"
444 name = ".*"
439 generic = true
445 generic = true
440
446
441 [[items]]
447 [[items]]
442 section = "devel"
448 section = "devel"
443 name = "all-warnings"
449 name = "all-warnings"
444 default = false
450 default = false
445
451
446 [[items]]
452 [[items]]
447 section = "devel"
453 section = "devel"
448 name = "bundle.delta"
454 name = "bundle.delta"
449 default = ""
455 default = ""
450
456
451 [[items]]
457 [[items]]
452 section = "devel"
458 section = "devel"
453 name = "bundle2.debug"
459 name = "bundle2.debug"
454 default = false
460 default = false
455
461
456 [[items]]
462 [[items]]
457 section = "devel"
463 section = "devel"
458 name = "cache-vfs"
464 name = "cache-vfs"
459
465
460 [[items]]
466 [[items]]
461 section = "devel"
467 section = "devel"
462 name = "check-locks"
468 name = "check-locks"
463 default = false
469 default = false
464
470
465 [[items]]
471 [[items]]
466 section = "devel"
472 section = "devel"
467 name = "check-relroot"
473 name = "check-relroot"
468 default = false
474 default = false
469
475
470 [[items]]
476 [[items]]
471 section = "devel"
477 section = "devel"
472 name = "copy-tracing.multi-thread"
478 name = "copy-tracing.multi-thread"
473 default = true
479 default = true
474
480
475 # Track copy information for all files, not just "added" ones (very slow)
481 # Track copy information for all files, not just "added" ones (very slow)
476 [[items]]
482 [[items]]
477 section = "devel"
483 section = "devel"
478 name = "copy-tracing.trace-all-files"
484 name = "copy-tracing.trace-all-files"
479 default = false
485 default = false
480
486
481 [[items]]
487 [[items]]
482 section = "devel"
488 section = "devel"
483 name = "debug.abort-update"
489 name = "debug.abort-update"
484 default = false
490 default = false
485 documentation = """If true, then any merge with the working copy, \
491 documentation = """If true, then any merge with the working copy, \
486 e.g. [hg update], will be aborted after figuring out what needs to be done, \
492 e.g. [hg update], will be aborted after figuring out what needs to be done, \
487 but before spawning the parallel worker."""
493 but before spawning the parallel worker."""
488
494
489 [[items]]
495 [[items]]
490 section = "devel"
496 section = "devel"
491 name = "debug.copies"
497 name = "debug.copies"
492 default = false
498 default = false
493
499
494 [[items]]
500 [[items]]
495 section = "devel"
501 section = "devel"
496 name = "debug.extensions"
502 name = "debug.extensions"
497 default = false
503 default = false
498
504
499 [[items]]
505 [[items]]
500 section = "devel"
506 section = "devel"
501 name = "debug.peer-request"
507 name = "debug.peer-request"
502 default = false
508 default = false
503
509
504 [[items]]
510 [[items]]
505 section = "devel"
511 section = "devel"
506 name = "debug.repo-filters"
512 name = "debug.repo-filters"
507 default = false
513 default = false
508
514
509 [[items]]
515 [[items]]
510 section = "devel"
516 section = "devel"
511 name = "default-date"
517 name = "default-date"
512
518
513 [[items]]
519 [[items]]
514 section = "devel"
520 section = "devel"
515 name = "deprec-warn"
521 name = "deprec-warn"
516 default = false
522 default = false
517
523
518 # possible values:
524 # possible values:
519 # - auto (the default)
525 # - auto (the default)
520 # - force-append
526 # - force-append
521 # - force-new
527 # - force-new
522 [[items]]
528 [[items]]
523 section = "devel"
529 section = "devel"
524 name = "dirstate.v2.data_update_mode"
530 name = "dirstate.v2.data_update_mode"
525 default = "auto"
531 default = "auto"
526
532
527 [[items]]
533 [[items]]
528 section = "devel"
534 section = "devel"
529 name = "disableloaddefaultcerts"
535 name = "disableloaddefaultcerts"
530 default = false
536 default = false
531
537
532 [[items]]
538 [[items]]
533 section = "devel"
539 section = "devel"
534 name = "discovery.exchange-heads"
540 name = "discovery.exchange-heads"
535 default = true
541 default = true
536 documentation = """If false, the discovery will not start with remote \
542 documentation = """If false, the discovery will not start with remote \
537 head fetching and local head querying."""
543 head fetching and local head querying."""
538
544
539 [[items]]
545 [[items]]
540 section = "devel"
546 section = "devel"
541 name = "discovery.grow-sample"
547 name = "discovery.grow-sample"
542 default = true
548 default = true
543 documentation = """If false, the sample size used in set discovery \
549 documentation = """If false, the sample size used in set discovery \
544 will not be increased through the process."""
550 will not be increased through the process."""
545
551
546 [[items]]
552 [[items]]
547 section = "devel"
553 section = "devel"
548 name = "discovery.grow-sample.dynamic"
554 name = "discovery.grow-sample.dynamic"
549 default = true
555 default = true
550 documentation = """If true, the default, the sample size is adapted to the shape \
556 documentation = """If true, the default, the sample size is adapted to the shape \
551 of the undecided set. It is set to the max of:
557 of the undecided set. It is set to the max of:
552 `<target-size>, len(roots(undecided)), len(heads(undecided))`"""
558 `<target-size>, len(roots(undecided)), len(heads(undecided))`"""
553
559
554 [[items]]
560 [[items]]
555 section = "devel"
561 section = "devel"
556 name = "discovery.grow-sample.rate"
562 name = "discovery.grow-sample.rate"
557 default = 1.05
563 default = 1.05
558 documentation = "Controls the rate at which the sample grows."
564 documentation = "Controls the rate at which the sample grows."
559
565
560 [[items]]
566 [[items]]
561 section = "devel"
567 section = "devel"
562 name = "discovery.randomize"
568 name = "discovery.randomize"
563 default = true
569 default = true
564 documentation = """If false, random samplings during discovery are deterministic. \
570 documentation = """If false, random samplings during discovery are deterministic. \
565 It is meant for integration tests."""
571 It is meant for integration tests."""
566
572
567 [[items]]
573 [[items]]
568 section = "devel"
574 section = "devel"
569 name = "discovery.sample-size"
575 name = "discovery.sample-size"
570 default = 200
576 default = 200
571 documentation = "Controls the initial size of the discovery sample."
577 documentation = "Controls the initial size of the discovery sample."
572
578
573 [[items]]
579 [[items]]
574 section = "devel"
580 section = "devel"
575 name = "discovery.sample-size.initial"
581 name = "discovery.sample-size.initial"
576 default = 100
582 default = 100
577 documentation = "Controls the initial size of the discovery for initial change."
583 documentation = "Controls the initial size of the discovery for initial change."
578
584
579 [[items]]
585 [[items]]
580 section = "devel"
586 section = "devel"
581 name = "legacy.exchange"
587 name = "legacy.exchange"
582 default-type = "list_type"
588 default-type = "list_type"
583
589
584 [[items]]
590 [[items]]
585 section = "devel"
591 section = "devel"
586 name = "lock-wait-sync-file"
592 name = "lock-wait-sync-file"
587 default = ""
593 default = ""
588
594
589 [[items]]
595 [[items]]
590 section = "devel"
596 section = "devel"
591 name = "persistent-nodemap"
597 name = "persistent-nodemap"
592 default = false
598 default = false
593 documentation = """When true, revlogs use a special reference version of the \
599 documentation = """When true, revlogs use a special reference version of the \
594 nodemap, that is not performant but is "known" to behave properly."""
600 nodemap, that is not performant but is "known" to behave properly."""
595
601
596 [[items]]
602 [[items]]
597 section = "devel"
603 section = "devel"
598 name = "server-insecure-exact-protocol"
604 name = "server-insecure-exact-protocol"
599 default = ""
605 default = ""
600
606
601 [[items]]
607 [[items]]
602 section = "devel"
608 section = "devel"
603 name = "servercafile"
609 name = "servercafile"
604 default = ""
610 default = ""
605
611
606 [[items]]
612 [[items]]
607 section = "devel"
613 section = "devel"
608 name = "serverexactprotocol"
614 name = "serverexactprotocol"
609 default = ""
615 default = ""
610
616
611 [[items]]
617 [[items]]
612 section = "devel"
618 section = "devel"
613 name = "serverrequirecert"
619 name = "serverrequirecert"
614 default = false
620 default = false
615
621
616 [[items]]
622 [[items]]
617 section = "devel"
623 section = "devel"
618 name = "strip-obsmarkers"
624 name = "strip-obsmarkers"
619 default = true
625 default = true
620
626
621 [[items]]
627 [[items]]
622 section = 'devel'
628 section = 'devel'
623 name = 'sync.status.pre-dirstate-write-file'
629 name = 'sync.status.pre-dirstate-write-file'
624 documentation = """
630 documentation = """
625 Makes the status algorithm wait for the existence of this file \
631 Makes the status algorithm wait for the existence of this file \
626 (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` \
632 (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` \
627 seconds) before taking the lock and writing the dirstate. \
633 seconds) before taking the lock and writing the dirstate. \
628 Status signals that it's ready to wait by creating a file \
634 Status signals that it's ready to wait by creating a file \
629 with the same name + `.waiting`. \
635 with the same name + `.waiting`. \
630 Useful when testing race conditions."""
636 Useful when testing race conditions."""
631
637
632 [[items]]
638 [[items]]
633 section = 'devel'
639 section = 'devel'
634 name = 'sync.status.pre-dirstate-write-file-timeout'
640 name = 'sync.status.pre-dirstate-write-file-timeout'
635 default=2
641 default=2
636
642
637 [[items]]
643 [[items]]
638 section = 'devel'
644 section = 'devel'
639 name = 'sync.dirstate.post-docket-read-file'
645 name = 'sync.dirstate.post-docket-read-file'
640
646
641 [[items]]
647 [[items]]
642 section = 'devel'
648 section = 'devel'
643 name = 'sync.dirstate.post-docket-read-file-timeout'
649 name = 'sync.dirstate.post-docket-read-file-timeout'
644 default=2
650 default=2
645
651
646 [[items]]
652 [[items]]
647 section = 'devel'
653 section = 'devel'
648 name = 'sync.dirstate.pre-read-file'
654 name = 'sync.dirstate.pre-read-file'
649
655
650 [[items]]
656 [[items]]
651 section = 'devel'
657 section = 'devel'
652 name = 'sync.dirstate.pre-read-file-timeout'
658 name = 'sync.dirstate.pre-read-file-timeout'
653 default=2
659 default=2
654
660
655 [[items]]
661 [[items]]
656 section = "devel"
662 section = "devel"
657 name = "user.obsmarker"
663 name = "user.obsmarker"
658
664
659 [[items]]
665 [[items]]
660 section = "devel"
666 section = "devel"
661 name = "warn-config"
667 name = "warn-config"
662
668
663 [[items]]
669 [[items]]
664 section = "devel"
670 section = "devel"
665 name = "warn-config-default"
671 name = "warn-config-default"
666
672
667 [[items]]
673 [[items]]
668 section = "devel"
674 section = "devel"
669 name = "warn-config-unknown"
675 name = "warn-config-unknown"
670
676
671 [[items]]
677 [[items]]
672 section = "devel"
678 section = "devel"
673 name = "warn-empty-changegroup"
679 name = "warn-empty-changegroup"
674 default = false
680 default = false
675
681
676 [[items]]
682 [[items]]
677 section = "diff"
683 section = "diff"
678 name = "merge"
684 name = "merge"
679 default = false
685 default = false
680 experimental = true
686 experimental = true
681
687
682 [[items]]
688 [[items]]
683 section = "email"
689 section = "email"
684 name = "bcc"
690 name = "bcc"
685
691
686 [[items]]
692 [[items]]
687 section = "email"
693 section = "email"
688 name = "cc"
694 name = "cc"
689
695
690 [[items]]
696 [[items]]
691 section = "email"
697 section = "email"
692 name = "charsets"
698 name = "charsets"
693 default-type = "list_type"
699 default-type = "list_type"
694
700
695 [[items]]
701 [[items]]
696 section = "email"
702 section = "email"
697 name = "from"
703 name = "from"
698
704
699 [[items]]
705 [[items]]
700 section = "email"
706 section = "email"
701 name = "method"
707 name = "method"
702 default = "smtp"
708 default = "smtp"
703
709
704 [[items]]
710 [[items]]
705 section = "email"
711 section = "email"
706 name = "reply-to"
712 name = "reply-to"
707
713
708 [[items]]
714 [[items]]
709 section = "email"
715 section = "email"
710 name = "to"
716 name = "to"
711
717
712 [[items]]
718 [[items]]
713 section = "experimental"
719 section = "experimental"
714 name = "archivemetatemplate"
720 name = "archivemetatemplate"
715 default-type = "dynamic"
721 default-type = "dynamic"
716
722
717 [[items]]
723 [[items]]
718 section = "experimental"
724 section = "experimental"
719 name = "auto-publish"
725 name = "auto-publish"
720 default = "publish"
726 default = "publish"
721
727
722
728
723 # The current implementation of the filtering/injecting of topological heads is
729 # The current implementation of the filtering/injecting of topological heads is
724 # naive and need proper benchmark and optimisation because we can envision
730 # naive and need proper benchmark and optimisation because we can envision
725 # moving the the v3 of the branch-cache format out of experimental
731 # moving the the v3 of the branch-cache format out of experimental
726 [[items]]
732 [[items]]
727 section = "experimental"
733 section = "experimental"
728 name = "branch-cache-v3"
734 name = "branch-cache-v3"
729 default = false
735 default = false
730
736
731 [[items]]
737 [[items]]
732 section = "experimental"
738 section = "experimental"
733 name = "bundle-phases"
739 name = "bundle-phases"
734 default = false
740 default = false
735
741
736 [[items]]
742 [[items]]
737 section = "experimental"
743 section = "experimental"
738 name = "bundle2-advertise"
744 name = "bundle2-advertise"
739 default = true
745 default = true
740
746
741 [[items]]
747 [[items]]
742 section = "experimental"
748 section = "experimental"
743 name = "bundle2-output-capture"
749 name = "bundle2-output-capture"
744 default = false
750 default = false
745
751
746 [[items]]
752 [[items]]
747 section = "experimental"
753 section = "experimental"
748 name = "bundle2.pushback"
754 name = "bundle2.pushback"
749 default = false
755 default = false
750
756
751 [[items]]
757 [[items]]
752 section = "experimental"
758 section = "experimental"
753 name = "bundle2lazylocking"
759 name = "bundle2lazylocking"
754 default = false
760 default = false
755
761
756 [[items]]
762 [[items]]
757 section = "experimental"
763 section = "experimental"
758 name = "bundlecomplevel"
764 name = "bundlecomplevel"
759
765
760 [[items]]
766 [[items]]
761 section = "experimental"
767 section = "experimental"
762 name = "bundlecomplevel.bzip2"
768 name = "bundlecomplevel.bzip2"
763
769
764 [[items]]
770 [[items]]
765 section = "experimental"
771 section = "experimental"
766 name = "bundlecomplevel.gzip"
772 name = "bundlecomplevel.gzip"
767
773
768 [[items]]
774 [[items]]
769 section = "experimental"
775 section = "experimental"
770 name = "bundlecomplevel.none"
776 name = "bundlecomplevel.none"
771
777
772 [[items]]
778 [[items]]
773 section = "experimental"
779 section = "experimental"
774 name = "bundlecomplevel.zstd"
780 name = "bundlecomplevel.zstd"
775
781
776 [[items]]
782 [[items]]
777 section = "experimental"
783 section = "experimental"
778 name = "bundlecompthreads"
784 name = "bundlecompthreads"
779
785
780 [[items]]
786 [[items]]
781 section = "experimental"
787 section = "experimental"
782 name = "bundlecompthreads.bzip2"
788 name = "bundlecompthreads.bzip2"
783
789
784 [[items]]
790 [[items]]
785 section = "experimental"
791 section = "experimental"
786 name = "bundlecompthreads.gzip"
792 name = "bundlecompthreads.gzip"
787
793
788 [[items]]
794 [[items]]
789 section = "experimental"
795 section = "experimental"
790 name = "bundlecompthreads.none"
796 name = "bundlecompthreads.none"
791
797
792 [[items]]
798 [[items]]
793 section = "experimental"
799 section = "experimental"
794 name = "bundlecompthreads.zstd"
800 name = "bundlecompthreads.zstd"
795
801
796 [[items]]
802 [[items]]
797 section = "experimental"
803 section = "experimental"
798 name = "changegroup3"
804 name = "changegroup3"
799 default = true
805 default = true
800
806
801 [[items]]
807 [[items]]
802 section = "experimental"
808 section = "experimental"
803 name = "changegroup4"
809 name = "changegroup4"
804 default = false
810 default = false
805
811
806 # might remove rank configuration once the computation has no impact
812 # might remove rank configuration once the computation has no impact
807 [[items]]
813 [[items]]
808 section = "experimental"
814 section = "experimental"
809 name = "changelog-v2.compute-rank"
815 name = "changelog-v2.compute-rank"
810 default = true
816 default = true
811
817
812 [[items]]
818 [[items]]
813 section = "experimental"
819 section = "experimental"
814 name = "cleanup-as-archived"
820 name = "cleanup-as-archived"
815 default = false
821 default = false
816
822
817 [[items]]
823 [[items]]
818 section = "experimental"
824 section = "experimental"
819 name = "clientcompressionengines"
825 name = "clientcompressionengines"
820 default-type = "list_type"
826 default-type = "list_type"
821
827
822 [[items]]
828 [[items]]
823 section = "experimental"
829 section = "experimental"
824 name = "copies.read-from"
830 name = "copies.read-from"
825 default = "filelog-only"
831 default = "filelog-only"
826
832
827 [[items]]
833 [[items]]
828 section = "experimental"
834 section = "experimental"
829 name = "copies.write-to"
835 name = "copies.write-to"
830 default = "filelog-only"
836 default = "filelog-only"
831
837
832 [[items]]
838 [[items]]
833 section = "experimental"
839 section = "experimental"
834 name = "copytrace"
840 name = "copytrace"
835 default = "on"
841 default = "on"
836
842
837 [[items]]
843 [[items]]
838 section = "experimental"
844 section = "experimental"
839 name = "copytrace.movecandidateslimit"
845 name = "copytrace.movecandidateslimit"
840 default = 100
846 default = 100
841
847
842 [[items]]
848 [[items]]
843 section = "experimental"
849 section = "experimental"
844 name = "copytrace.sourcecommitlimit"
850 name = "copytrace.sourcecommitlimit"
845 default = 100
851 default = 100
846
852
847 [[items]]
853 [[items]]
848 section = "experimental"
854 section = "experimental"
849 name = "crecordtest"
855 name = "crecordtest"
850
856
851 [[items]]
857 [[items]]
852 section = "experimental"
858 section = "experimental"
853 name = "directaccess"
859 name = "directaccess"
854 default = false
860 default = false
855
861
856 [[items]]
862 [[items]]
857 section = "experimental"
863 section = "experimental"
858 name = "directaccess.revnums"
864 name = "directaccess.revnums"
859 default = false
865 default = false
860
866
861 [[items]]
867 [[items]]
862 section = "experimental"
868 section = "experimental"
863 name = "editortmpinhg"
869 name = "editortmpinhg"
864 default = false
870 default = false
865
871
866 [[items]]
872 [[items]]
867 section = "experimental"
873 section = "experimental"
868 name = "evolution"
874 name = "evolution"
869 default-type = "list_type"
875 default-type = "list_type"
870
876
871 [[items]]
877 [[items]]
872 section = "experimental"
878 section = "experimental"
873 name = "evolution.allowdivergence"
879 name = "evolution.allowdivergence"
874 default = false
880 default = false
875 alias = [["experimental", "allowdivergence"]]
881 alias = [["experimental", "allowdivergence"]]
876
882
877 [[items]]
883 [[items]]
878 section = "experimental"
884 section = "experimental"
879 name = "evolution.allowunstable"
885 name = "evolution.allowunstable"
880
886
881 [[items]]
887 [[items]]
882 section = "experimental"
888 section = "experimental"
883 name = "evolution.bundle-obsmarker"
889 name = "evolution.bundle-obsmarker"
884 default = false
890 default = false
885
891
886 [[items]]
892 [[items]]
887 section = "experimental"
893 section = "experimental"
888 name = "evolution.bundle-obsmarker:mandatory"
894 name = "evolution.bundle-obsmarker:mandatory"
889 default = true
895 default = true
890
896
891 [[items]]
897 [[items]]
892 section = "experimental"
898 section = "experimental"
893 name = "evolution.createmarkers"
899 name = "evolution.createmarkers"
894
900
895 [[items]]
901 [[items]]
896 section = "experimental"
902 section = "experimental"
897 name = "evolution.effect-flags"
903 name = "evolution.effect-flags"
898 default = true
904 default = true
899 alias = [["experimental", "effect-flags"]]
905 alias = [["experimental", "effect-flags"]]
900
906
901 [[items]]
907 [[items]]
902 section = "experimental"
908 section = "experimental"
903 name = "evolution.exchange"
909 name = "evolution.exchange"
904
910
905 [[items]]
911 [[items]]
906 section = "experimental"
912 section = "experimental"
907 name = "evolution.report-instabilities"
913 name = "evolution.report-instabilities"
908 default = true
914 default = true
909
915
910 [[items]]
916 [[items]]
911 section = "experimental"
917 section = "experimental"
912 name = "evolution.track-operation"
918 name = "evolution.track-operation"
913 default = true
919 default = true
914
920
915 [[items]]
921 [[items]]
916 section = "experimental"
922 section = "experimental"
917 name = "exportableenviron"
923 name = "exportableenviron"
918 default-type = "list_type"
924 default-type = "list_type"
919
925
920 [[items]]
926 [[items]]
921 section = "experimental"
927 section = "experimental"
922 name = "extendedheader.index"
928 name = "extendedheader.index"
923
929
924 [[items]]
930 [[items]]
925 section = "experimental"
931 section = "experimental"
926 name = "extendedheader.similarity"
932 name = "extendedheader.similarity"
927 default = false
933 default = false
928
934
929 [[items]]
935 [[items]]
930 section = "experimental"
936 section = "experimental"
931 name = "extra-filter-revs"
937 name = "extra-filter-revs"
932 documentation = """Repo-level config to prevent a revset from being visible.
938 documentation = """Repo-level config to prevent a revset from being visible.
933 The target use case is to use `share` to expose different subsets of the same \
939 The target use case is to use `share` to expose different subsets of the same \
934 repository, especially server side. See also `server.view`."""
940 repository, especially server side. See also `server.view`."""
935
941
936 [[items]]
942 [[items]]
937 section = "experimental"
943 section = "experimental"
938 name = "graphshorten"
944 name = "graphshorten"
939 default = false
945 default = false
940
946
941 [[items]]
947 [[items]]
942 section = "experimental"
948 section = "experimental"
943 name = "graphstyle.grandparent"
949 name = "graphstyle.grandparent"
944 default-type = "dynamic"
950 default-type = "dynamic"
945
951
946 [[items]]
952 [[items]]
947 section = "experimental"
953 section = "experimental"
948 name = "graphstyle.missing"
954 name = "graphstyle.missing"
949 default-type = "dynamic"
955 default-type = "dynamic"
950
956
951 [[items]]
957 [[items]]
952 section = "experimental"
958 section = "experimental"
953 name = "graphstyle.parent"
959 name = "graphstyle.parent"
954 default-type = "dynamic"
960 default-type = "dynamic"
955
961
956 [[items]]
962 [[items]]
957 section = "experimental"
963 section = "experimental"
958 name = "hook-track-tags"
964 name = "hook-track-tags"
959 default = false
965 default = false
960
966
961 [[items]]
967 [[items]]
962 section = "experimental"
968 section = "experimental"
963 name = "httppostargs"
969 name = "httppostargs"
964 default = false
970 default = false
965
971
966 [[items]]
972 [[items]]
967 section = "experimental"
973 section = "experimental"
968 name = "log.topo"
974 name = "log.topo"
969 default = false
975 default = false
970
976
971 [[items]]
977 [[items]]
972 section = "experimental"
978 section = "experimental"
973 name = "maxdeltachainspan"
979 name = "maxdeltachainspan"
974 default = -1
980 default = -1
975
981
976 [[items]]
982 [[items]]
977 section = "experimental"
983 section = "experimental"
978 name = "merge-track-salvaged"
984 name = "merge-track-salvaged"
979 default = false
985 default = false
980 documentation = """Tracks files which were undeleted (merge might delete them \
986 documentation = """Tracks files which were undeleted (merge might delete them \
981 but we explicitly kept/undeleted them) and creates new filenodes for them."""
987 but we explicitly kept/undeleted them) and creates new filenodes for them."""
982
988
983 [[items]]
989 [[items]]
984 section = "experimental"
990 section = "experimental"
985 name = "merge.checkpathconflicts"
991 name = "merge.checkpathconflicts"
986 default = false
992 default = false
987
993
988 [[items]]
994 [[items]]
989 section = "experimental"
995 section = "experimental"
990 name = "narrow"
996 name = "narrow"
991 default = false
997 default = false
992
998
993 [[items]]
999 [[items]]
994 section = "experimental"
1000 section = "experimental"
995 name = "nointerrupt"
1001 name = "nointerrupt"
996 default = false
1002 default = false
997
1003
998 [[items]]
1004 [[items]]
999 section = "experimental"
1005 section = "experimental"
1000 name = "nointerrupt-interactiveonly"
1006 name = "nointerrupt-interactiveonly"
1001 default = true
1007 default = true
1002
1008
1003 [[items]]
1009 [[items]]
1004 section = "experimental"
1010 section = "experimental"
1005 name = "nonnormalparanoidcheck"
1011 name = "nonnormalparanoidcheck"
1006 default = false
1012 default = false
1007
1013
1008 [[items]]
1014 [[items]]
1009 section = "experimental"
1015 section = "experimental"
1010 name = "obsmarkers-exchange-debug"
1016 name = "obsmarkers-exchange-debug"
1011 default = false
1017 default = false
1012
1018
1013 [[items]]
1019 [[items]]
1014 section = "experimental"
1020 section = "experimental"
1015 name = "rebaseskipobsolete"
1021 name = "rebaseskipobsolete"
1016 default = true
1022 default = true
1017
1023
1018 [[items]]
1024 [[items]]
1019 section = "experimental"
1025 section = "experimental"
1020 name = "remotenames"
1026 name = "remotenames"
1021 default = false
1027 default = false
1022
1028
1023 [[items]]
1029 [[items]]
1024 section = "experimental"
1030 section = "experimental"
1025 name = "removeemptydirs"
1031 name = "removeemptydirs"
1026 default = true
1032 default = true
1027
1033
1028 [[items]]
1034 [[items]]
1029 section = "experimental"
1035 section = "experimental"
1030 name = "revert.interactive.select-to-keep"
1036 name = "revert.interactive.select-to-keep"
1031 default = false
1037 default = false
1032
1038
1033 [[items]]
1039 [[items]]
1034 section = "experimental"
1040 section = "experimental"
1035 name = "revisions.disambiguatewithin"
1041 name = "revisions.disambiguatewithin"
1036
1042
1037 [[items]]
1043 [[items]]
1038 section = "experimental"
1044 section = "experimental"
1039 name = "revisions.prefixhexnode"
1045 name = "revisions.prefixhexnode"
1040 default = false
1046 default = false
1041
1047
1042 # "out of experimental" todo list.
1048 # "out of experimental" todo list.
1043 #
1049 #
1044 # * include management of a persistent nodemap in the main docket
1050 # * include management of a persistent nodemap in the main docket
1045 # * enforce a "no-truncate" policy for mmap safety
1051 # * enforce a "no-truncate" policy for mmap safety
1046 # - for censoring operation
1052 # - for censoring operation
1047 # - for stripping operation
1053 # - for stripping operation
1048 # - for rollback operation
1054 # - for rollback operation
1049 # * proper streaming (race free) of the docket file
1055 # * proper streaming (race free) of the docket file
1050 # * track garbage data to evemtually allow rewriting -existing- sidedata.
1056 # * track garbage data to evemtually allow rewriting -existing- sidedata.
1051 # * Exchange-wise, we will also need to do something more efficient than
1057 # * Exchange-wise, we will also need to do something more efficient than
1052 # keeping references to the affected revlogs, especially memory-wise when
1058 # keeping references to the affected revlogs, especially memory-wise when
1053 # rewriting sidedata.
1059 # rewriting sidedata.
1054 # * introduce a proper solution to reduce the number of filelog related files.
1060 # * introduce a proper solution to reduce the number of filelog related files.
1055 # * use caching for reading sidedata (similar to what we do for data).
1061 # * use caching for reading sidedata (similar to what we do for data).
1056 # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation).
1062 # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation).
1057 # * Improvement to consider
1063 # * Improvement to consider
1058 # - avoid compression header in chunk using the default compression?
1064 # - avoid compression header in chunk using the default compression?
1059 # - forbid "inline" compression mode entirely?
1065 # - forbid "inline" compression mode entirely?
1060 # - split the data offset and flag field (the 2 bytes save are mostly trouble)
1066 # - split the data offset and flag field (the 2 bytes save are mostly trouble)
1061 # - keep track of uncompressed -chunk- size (to preallocate memory better)
1067 # - keep track of uncompressed -chunk- size (to preallocate memory better)
1062 # - keep track of chain base or size (probably not that useful anymore)
1068 # - keep track of chain base or size (probably not that useful anymore)
1063 [[items]]
1069 [[items]]
1064 section = "experimental"
1070 section = "experimental"
1065 name = "revlogv2"
1071 name = "revlogv2"
1066
1072
1067 [[items]]
1073 [[items]]
1068 section = "experimental"
1074 section = "experimental"
1069 name = "rust.index"
1075 name = "rust.index"
1070 default = false
1076 default = false
1071
1077
1072 [[items]]
1078 [[items]]
1073 section = "experimental"
1079 section = "experimental"
1074 name = "server.allow-hidden-access"
1080 name = "server.allow-hidden-access"
1075 default-type = "list_type"
1081 default-type = "list_type"
1076
1082
1077 [[items]]
1083 [[items]]
1078 section = "experimental"
1084 section = "experimental"
1079 name = "server.filesdata.recommended-batch-size"
1085 name = "server.filesdata.recommended-batch-size"
1080 default = 50000
1086 default = 50000
1081
1087
1082 [[items]]
1088 [[items]]
1083 section = "experimental"
1089 section = "experimental"
1084 name = "server.manifestdata.recommended-batch-size"
1090 name = "server.manifestdata.recommended-batch-size"
1085 default = 100000
1091 default = 100000
1086
1092
1087 [[items]]
1093 [[items]]
1088 section = "experimental"
1094 section = "experimental"
1089 name = "server.stream-narrow-clones"
1095 name = "server.stream-narrow-clones"
1090 default = false
1096 default = false
1091
1097
1092 [[items]]
1098 [[items]]
1093 section = "experimental"
1099 section = "experimental"
1094 name = "single-head-per-branch"
1100 name = "single-head-per-branch"
1095 default = false
1101 default = false
1096
1102
1097 [[items]]
1103 [[items]]
1098 section = "experimental"
1104 section = "experimental"
1099 name = "single-head-per-branch:account-closed-heads"
1105 name = "single-head-per-branch:account-closed-heads"
1100 default = false
1106 default = false
1101
1107
1102 [[items]]
1108 [[items]]
1103 section = "experimental"
1109 section = "experimental"
1104 name = "single-head-per-branch:public-changes-only"
1110 name = "single-head-per-branch:public-changes-only"
1105 default = false
1111 default = false
1106
1112
1107 [[items]]
1113 [[items]]
1108 section = "experimental"
1114 section = "experimental"
1109 name = "sparse-read"
1115 name = "sparse-read"
1110 default = false
1116 default = false
1111
1117
1112 [[items]]
1118 [[items]]
1113 section = "experimental"
1119 section = "experimental"
1114 name = "sparse-read.density-threshold"
1120 name = "sparse-read.density-threshold"
1115 default = 0.5
1121 default = 0.5
1116
1122
1117 [[items]]
1123 [[items]]
1118 section = "experimental"
1124 section = "experimental"
1119 name = "sparse-read.min-gap-size"
1125 name = "sparse-read.min-gap-size"
1120 default = "65K"
1126 default = "65K"
1121
1127
1122 [[items]]
1128 [[items]]
1123 section = "experimental"
1129 section = "experimental"
1124 name = "stream-v3"
1130 name = "stream-v3"
1125 default = false
1131 default = false
1126
1132
1127 [[items]]
1133 [[items]]
1128 section = "experimental"
1134 section = "experimental"
1129 name = "treemanifest"
1135 name = "treemanifest"
1130 default = false
1136 default = false
1131
1137
1132 [[items]]
1138 [[items]]
1133 section = "experimental"
1139 section = "experimental"
1134 name = "update.atomic-file"
1140 name = "update.atomic-file"
1135 default = false
1141 default = false
1136
1142
1137 [[items]]
1143 [[items]]
1138 section = "experimental"
1144 section = "experimental"
1139 name = "web.full-garbage-collection-rate"
1145 name = "web.full-garbage-collection-rate"
1140 default = 1 # still forcing a full collection on each request
1146 default = 1 # still forcing a full collection on each request
1141
1147
1142 [[items]]
1148 [[items]]
1143 section = "experimental"
1149 section = "experimental"
1144 name = "worker.repository-upgrade"
1150 name = "worker.repository-upgrade"
1145 default = false
1151 default = false
1146
1152
1147 [[items]]
1153 [[items]]
1148 section = "experimental"
1154 section = "experimental"
1149 name = "worker.wdir-get-thread-safe"
1155 name = "worker.wdir-get-thread-safe"
1150 default = false
1156 default = false
1151
1157
1152 [[items]]
1158 [[items]]
1153 section = "experimental"
1159 section = "experimental"
1154 name = "xdiff"
1160 name = "xdiff"
1155 default = false
1161 default = false
1156
1162
1157 [[items]]
1163 [[items]]
1158 section = "extdata"
1164 section = "extdata"
1159 name = ".*"
1165 name = ".*"
1160 generic = true
1166 generic = true
1161
1167
1162 [[items]]
1168 [[items]]
1163 section = "extensions"
1169 section = "extensions"
1164 name = "[^:]*"
1170 name = "[^:]*"
1165 generic = true
1171 generic = true
1166
1172
1167 [[items]]
1173 [[items]]
1168 section = "extensions"
1174 section = "extensions"
1169 name = "[^:]*:required"
1175 name = "[^:]*:required"
1170 default = false
1176 default = false
1171 generic = true
1177 generic = true
1172
1178
1173
1179
1174 # The format section is dedicated to control of the repository on disk format
1180 # The format section is dedicated to control of the repository on disk format
1175 # and constraints.
1181 # and constraints.
1176 #
1182 #
1177 # A format change affects which data is expected to be stored in the repository
1183 # A format change affects which data is expected to be stored in the repository
1178 # and how. It impacts other client whichever their version are, format change
1184 # and how. It impacts other client whichever their version are, format change
1179 # often comes with an associated entry in the requirements.
1185 # often comes with an associated entry in the requirements.
1180 #
1186 #
1181 # The option are usually in the form `use-xxx-yyy` (with xxx-yy the feature name).
1187 # The option are usually in the form `use-xxx-yyy` (with xxx-yy the feature name).
1182 #
1188 #
1183 # To configure details of how the repository is accessed, without affect the
1189 # To configure details of how the repository is accessed, without affect the
1184 # repository formats, see the `storage section`.
1190 # repository formats, see the `storage section`.
1185
1191
1186 [[items]]
1192 [[items]]
1187 section = "format"
1193 section = "format"
1188 name = "bookmarks-in-store"
1194 name = "bookmarks-in-store"
1189 default = false
1195 default = false
1190
1196
1191 [[items]]
1197 [[items]]
1192 section = "format"
1198 section = "format"
1193 name = "chunkcachesize"
1199 name = "chunkcachesize"
1194 experimental = true
1200 experimental = true
1195
1201
1196 [[items]]
1202 [[items]]
1197 section = "format"
1203 section = "format"
1198 name = "dotencode"
1204 name = "dotencode"
1199 default = true
1205 default = true
1200
1206
1201 # The interaction between the archived phase and obsolescence markers needs to
1207 # The interaction between the archived phase and obsolescence markers needs to
1202 # be sorted out before wider usage of this are to be considered.
1208 # be sorted out before wider usage of this are to be considered.
1203 #
1209 #
1204 # At the time this message is written, behavior when archiving obsolete
1210 # At the time this message is written, behavior when archiving obsolete
1205 # changeset differ significantly from stripping. As part of stripping, we also
1211 # changeset differ significantly from stripping. As part of stripping, we also
1206 # remove the obsolescence marker associated to the stripped changesets,
1212 # remove the obsolescence marker associated to the stripped changesets,
1207 # revealing the precedecessors changesets when applicable. When archiving, we
1213 # revealing the precedecessors changesets when applicable. When archiving, we
1208 # don't touch the obsolescence markers, keeping everything hidden. This can
1214 # don't touch the obsolescence markers, keeping everything hidden. This can
1209 # result in quite confusing situation for people combining exchanging draft
1215 # result in quite confusing situation for people combining exchanging draft
1210 # with the archived phases. As some markers needed by others may be skipped
1216 # with the archived phases. As some markers needed by others may be skipped
1211 # during exchange.
1217 # during exchange.
1212 [[items]]
1218 [[items]]
1213 section = "format"
1219 section = "format"
1214 name = "exp-archived-phase"
1220 name = "exp-archived-phase"
1215 default = false
1221 default = false
1216 experimental = true
1222 experimental = true
1217
1223
1218 # Experimental TODOs:
1224 # Experimental TODOs:
1219 #
1225 #
1220 # * Same as for revlogv2 (but for the reduction of the number of files)
1226 # * Same as for revlogv2 (but for the reduction of the number of files)
1221 # * Actually computing the rank of changesets
1227 # * Actually computing the rank of changesets
1222 # * Improvement to investigate
1228 # * Improvement to investigate
1223 # - storing .hgtags fnode
1229 # - storing .hgtags fnode
1224 # - storing branch related identifier
1230 # - storing branch related identifier
1225 [[items]]
1231 [[items]]
1226 section = "format"
1232 section = "format"
1227 name = "exp-use-changelog-v2"
1233 name = "exp-use-changelog-v2"
1228 experimental = true
1234 experimental = true
1229
1235
1230 [[items]]
1236 [[items]]
1231 section = "format"
1237 section = "format"
1232 name = "exp-use-copies-side-data-changeset"
1238 name = "exp-use-copies-side-data-changeset"
1233 default = false
1239 default = false
1234 experimental = true
1240 experimental = true
1235
1241
1236 [[items]]
1242 [[items]]
1237 section = "format"
1243 section = "format"
1238 name = "generaldelta"
1244 name = "generaldelta"
1239 default = false
1245 default = false
1240 experimental = true
1246 experimental = true
1241
1247
1242 [[items]]
1248 [[items]]
1243 section = "format"
1249 section = "format"
1244 name = "manifestcachesize"
1250 name = "manifestcachesize"
1245 experimental = true
1251 experimental = true
1246
1252
1247 [[items]]
1253 [[items]]
1248 section = "format"
1254 section = "format"
1249 name = "maxchainlen"
1255 name = "maxchainlen"
1250 default-type = "dynamic"
1256 default-type = "dynamic"
1251 experimental = true
1257 experimental = true
1252
1258
1253 [[items]]
1259 [[items]]
1254 section = "format"
1260 section = "format"
1255 name = "obsstore-version"
1261 name = "obsstore-version"
1256
1262
1257 [[items]]
1263 [[items]]
1258 section = "format"
1264 section = "format"
1259 name = "revlog-compression"
1265 name = "revlog-compression"
1260 default-type = "lambda"
1266 default-type = "lambda"
1261 alias = [["experimental", "format.compression"]]
1267 alias = [["experimental", "format.compression"]]
1262 default = [ "zstd", "zlib",]
1268 default = [ "zstd", "zlib",]
1263
1269
1264 [[items]]
1270 [[items]]
1265 section = "format"
1271 section = "format"
1266 name = "sparse-revlog"
1272 name = "sparse-revlog"
1267 default = true
1273 default = true
1268
1274
1269 [[items]]
1275 [[items]]
1270 section = "format"
1276 section = "format"
1271 name = "use-dirstate-tracked-hint"
1277 name = "use-dirstate-tracked-hint"
1272 default = false
1278 default = false
1273 experimental = true
1279 experimental = true
1274
1280
1275 [[items]]
1281 [[items]]
1276 section = "format"
1282 section = "format"
1277 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories"
1283 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories"
1278 default = false
1284 default = false
1279 experimental = true
1285 experimental = true
1280
1286
1281 [[items]]
1287 [[items]]
1282 section = "format"
1288 section = "format"
1283 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet"
1289 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet"
1284 default = false
1290 default = false
1285 experimental = true
1291 experimental = true
1286
1292
1287 [[items]]
1293 [[items]]
1288 section = "format"
1294 section = "format"
1289 name = "use-dirstate-tracked-hint.version"
1295 name = "use-dirstate-tracked-hint.version"
1290 default = 1
1296 default = 1
1291 experimental = true
1297 experimental = true
1292
1298
1293 [[items]]
1299 [[items]]
1294 section = "format"
1300 section = "format"
1295 name = "use-dirstate-v2"
1301 name = "use-dirstate-v2"
1296 default = false
1302 default = false
1297 alias = [["format", "exp-rc-dirstate-v2"]]
1303 alias = [["format", "exp-rc-dirstate-v2"]]
1298 experimental = true
1304 experimental = true
1299 documentation = """Enables dirstate-v2 format *when creating a new repository*.
1305 documentation = """Enables dirstate-v2 format *when creating a new repository*.
1300 Which format to use for existing repos is controlled by `.hg/requires`."""
1306 Which format to use for existing repos is controlled by `.hg/requires`."""
1301
1307
1302 [[items]]
1308 [[items]]
1303 section = "format"
1309 section = "format"
1304 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories"
1310 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories"
1305 default = false
1311 default = false
1306 experimental = true
1312 experimental = true
1307
1313
1308 [[items]]
1314 [[items]]
1309 section = "format"
1315 section = "format"
1310 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet"
1316 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet"
1311 default = false
1317 default = false
1312 experimental = true
1318 experimental = true
1313
1319
1314 # Having this on by default means we are confident about the scaling of phases.
1320 # Having this on by default means we are confident about the scaling of phases.
1315 # This is not garanteed to be the case at the time this message is written.
1321 # This is not garanteed to be the case at the time this message is written.
1316 [[items]]
1322 [[items]]
1317 section = "format"
1323 section = "format"
1318 name = "use-internal-phase"
1324 name = "use-internal-phase"
1319 default = false
1325 default = false
1320 experimental = true
1326 experimental = true
1321
1327
1322 [[items]]
1328 [[items]]
1323 section = "format"
1329 section = "format"
1324 name = "use-persistent-nodemap"
1330 name = "use-persistent-nodemap"
1325 default-type = "dynamic"
1331 default-type = "dynamic"
1326
1332
1327 [[items]]
1333 [[items]]
1328 section = "format"
1334 section = "format"
1329 name = "use-share-safe"
1335 name = "use-share-safe"
1330 default = true
1336 default = true
1331
1337
1332 [[items]]
1338 [[items]]
1333 section = "format"
1339 section = "format"
1334 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories"
1340 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories"
1335 default = false
1341 default = false
1336 experimental = true
1342 experimental = true
1337
1343
1338 [[items]]
1344 [[items]]
1339 section = "format"
1345 section = "format"
1340 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet"
1346 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet"
1341 default = false
1347 default = false
1342 experimental = true
1348 experimental = true
1343
1349
1344 [[items]]
1350 [[items]]
1345 section = "format"
1351 section = "format"
1346 name = "usefncache"
1352 name = "usefncache"
1347 default = true
1353 default = true
1348
1354
1349 [[items]]
1355 [[items]]
1350 section = "format"
1356 section = "format"
1351 name = "usegeneraldelta"
1357 name = "usegeneraldelta"
1352 default = true
1358 default = true
1353
1359
1354 [[items]]
1360 [[items]]
1355 section = "format"
1361 section = "format"
1356 name = "usestore"
1362 name = "usestore"
1357 default = true
1363 default = true
1358
1364
1359 [[items]]
1365 [[items]]
1360 section = "fsmonitor"
1366 section = "fsmonitor"
1361 name = "warn_update_file_count"
1367 name = "warn_update_file_count"
1362 default = 50000
1368 default = 50000
1363
1369
1364 [[items]]
1370 [[items]]
1365 section = "fsmonitor"
1371 section = "fsmonitor"
1366 name = "warn_update_file_count_rust"
1372 name = "warn_update_file_count_rust"
1367 default = 400000
1373 default = 400000
1368
1374
1369 [[items]]
1375 [[items]]
1370 section = "fsmonitor"
1376 section = "fsmonitor"
1371 name = "warn_when_unused"
1377 name = "warn_when_unused"
1372 default = true
1378 default = true
1373
1379
1374 [[items]]
1380 [[items]]
1375 section = "help"
1381 section = "help"
1376 name = 'hidden-command\..*'
1382 name = 'hidden-command\..*'
1377 default = false
1383 default = false
1378 generic = true
1384 generic = true
1379
1385
1380 [[items]]
1386 [[items]]
1381 section = "help"
1387 section = "help"
1382 name = 'hidden-topic\..*'
1388 name = 'hidden-topic\..*'
1383 default = false
1389 default = false
1384 generic = true
1390 generic = true
1385
1391
1386 [[items]]
1392 [[items]]
1387 section = "hgweb-paths"
1393 section = "hgweb-paths"
1388 name = ".*"
1394 name = ".*"
1389 default-type = "list_type"
1395 default-type = "list_type"
1390 generic = true
1396 generic = true
1391
1397
1392 [[items]]
1398 [[items]]
1393 section = "hooks"
1399 section = "hooks"
1394 name = ".*:run-with-plain"
1400 name = ".*:run-with-plain"
1395 default = true
1401 default = true
1396 generic = true
1402 generic = true
1397
1403
1398 [[items]]
1404 [[items]]
1399 section = "hooks"
1405 section = "hooks"
1400 name = "[^:]*"
1406 name = "[^:]*"
1401 default-type = "dynamic"
1407 default-type = "dynamic"
1402 generic = true
1408 generic = true
1403
1409
1404 [[items]]
1410 [[items]]
1405 section = "hostfingerprints"
1411 section = "hostfingerprints"
1406 name = ".*"
1412 name = ".*"
1407 default-type = "list_type"
1413 default-type = "list_type"
1408 generic = true
1414 generic = true
1409
1415
1410 [[items]]
1416 [[items]]
1411 section = "hostsecurity"
1417 section = "hostsecurity"
1412 name = ".*:ciphers$"
1418 name = ".*:ciphers$"
1413 default-type = "dynamic"
1419 default-type = "dynamic"
1414 generic = true
1420 generic = true
1415
1421
1416 [[items]]
1422 [[items]]
1417 section = "hostsecurity"
1423 section = "hostsecurity"
1418 name = ".*:fingerprints$"
1424 name = ".*:fingerprints$"
1419 default-type = "list_type"
1425 default-type = "list_type"
1420 generic = true
1426 generic = true
1421
1427
1422 [[items]]
1428 [[items]]
1423 section = "hostsecurity"
1429 section = "hostsecurity"
1424 name = ".*:minimumprotocol$"
1430 name = ".*:minimumprotocol$"
1425 default-type = "dynamic"
1431 default-type = "dynamic"
1426 generic = true
1432 generic = true
1427
1433
1428 [[items]]
1434 [[items]]
1429 section = "hostsecurity"
1435 section = "hostsecurity"
1430 name = ".*:verifycertsfile$"
1436 name = ".*:verifycertsfile$"
1431 generic = true
1437 generic = true
1432
1438
1433 [[items]]
1439 [[items]]
1434 section = "hostsecurity"
1440 section = "hostsecurity"
1435 name = "ciphers"
1441 name = "ciphers"
1436
1442
1437 [[items]]
1443 [[items]]
1438 section = "hostsecurity"
1444 section = "hostsecurity"
1439 name = "minimumprotocol"
1445 name = "minimumprotocol"
1440 default-type = "dynamic"
1446 default-type = "dynamic"
1441
1447
1442 [[items]]
1448 [[items]]
1443 section = "http"
1449 section = "http"
1444 name = "timeout"
1450 name = "timeout"
1445
1451
1446 [[items]]
1452 [[items]]
1447 section = "http_proxy"
1453 section = "http_proxy"
1448 name = "always"
1454 name = "always"
1449 default = false
1455 default = false
1450
1456
1451 [[items]]
1457 [[items]]
1452 section = "http_proxy"
1458 section = "http_proxy"
1453 name = "host"
1459 name = "host"
1454
1460
1455 [[items]]
1461 [[items]]
1456 section = "http_proxy"
1462 section = "http_proxy"
1457 name = "no"
1463 name = "no"
1458 default-type = "list_type"
1464 default-type = "list_type"
1459
1465
1460 [[items]]
1466 [[items]]
1461 section = "http_proxy"
1467 section = "http_proxy"
1462 name = "passwd"
1468 name = "passwd"
1463
1469
1464 [[items]]
1470 [[items]]
1465 section = "http_proxy"
1471 section = "http_proxy"
1466 name = "user"
1472 name = "user"
1467
1473
1468 [[items]]
1474 [[items]]
1469 section = "logtoprocess"
1475 section = "logtoprocess"
1470 name = "command"
1476 name = "command"
1471
1477
1472 [[items]]
1478 [[items]]
1473 section = "logtoprocess"
1479 section = "logtoprocess"
1474 name = "commandexception"
1480 name = "commandexception"
1475
1481
1476 [[items]]
1482 [[items]]
1477 section = "logtoprocess"
1483 section = "logtoprocess"
1478 name = "commandfinish"
1484 name = "commandfinish"
1479
1485
1480 [[items]]
1486 [[items]]
1481 section = "logtoprocess"
1487 section = "logtoprocess"
1482 name = "develwarn"
1488 name = "develwarn"
1483
1489
1484 [[items]]
1490 [[items]]
1485 section = "logtoprocess"
1491 section = "logtoprocess"
1486 name = "uiblocked"
1492 name = "uiblocked"
1487
1493
1488 [[items]]
1494 [[items]]
1489 section = "merge"
1495 section = "merge"
1490 name = "checkignored"
1496 name = "checkignored"
1491 default = "abort"
1497 default = "abort"
1492
1498
1493 [[items]]
1499 [[items]]
1494 section = "merge"
1500 section = "merge"
1495 name = "checkunknown"
1501 name = "checkunknown"
1496 default = "abort"
1502 default = "abort"
1497
1503
1498 [[items]]
1504 [[items]]
1499 section = "merge"
1505 section = "merge"
1500 name = "disable-partial-tools"
1506 name = "disable-partial-tools"
1501 default = false
1507 default = false
1502 experimental = true
1508 experimental = true
1503
1509
1504 [[items]]
1510 [[items]]
1505 section = "merge"
1511 section = "merge"
1506 name = "followcopies"
1512 name = "followcopies"
1507 default = true
1513 default = true
1508
1514
1509 [[items]]
1515 [[items]]
1510 section = "merge"
1516 section = "merge"
1511 name = "on-failure"
1517 name = "on-failure"
1512 default = "continue"
1518 default = "continue"
1513
1519
1514 [[items]]
1520 [[items]]
1515 section = "merge"
1521 section = "merge"
1516 name = "preferancestor"
1522 name = "preferancestor"
1517 default-type = "lambda"
1523 default-type = "lambda"
1518 default = ["*"]
1524 default = ["*"]
1519 experimental = true
1525 experimental = true
1520
1526
1521 [[items]]
1527 [[items]]
1522 section = "merge"
1528 section = "merge"
1523 name = "strict-capability-check"
1529 name = "strict-capability-check"
1524 default = false
1530 default = false
1525
1531
1526 [[items]]
1532 [[items]]
1527 section = "merge-tools"
1533 section = "merge-tools"
1528 name = ".*"
1534 name = ".*"
1529 generic = true
1535 generic = true
1530
1536
1531 [[items]]
1537 [[items]]
1532 section = "merge-tools"
1538 section = "merge-tools"
1533 name = '.*\.args$'
1539 name = '.*\.args$'
1534 default = "$local $base $other"
1540 default = "$local $base $other"
1535 generic = true
1541 generic = true
1536 priority = -1
1542 priority = -1
1537
1543
1538 [[items]]
1544 [[items]]
1539 section = "merge-tools"
1545 section = "merge-tools"
1540 name = '.*\.binary$'
1546 name = '.*\.binary$'
1541 default = false
1547 default = false
1542 generic = true
1548 generic = true
1543 priority = -1
1549 priority = -1
1544
1550
1545 [[items]]
1551 [[items]]
1546 section = "merge-tools"
1552 section = "merge-tools"
1547 name = '.*\.check$'
1553 name = '.*\.check$'
1548 default-type = "list_type"
1554 default-type = "list_type"
1549 generic = true
1555 generic = true
1550 priority = -1
1556 priority = -1
1551
1557
1552 [[items]]
1558 [[items]]
1553 section = "merge-tools"
1559 section = "merge-tools"
1554 name = '.*\.checkchanged$'
1560 name = '.*\.checkchanged$'
1555 default = false
1561 default = false
1556 generic = true
1562 generic = true
1557 priority = -1
1563 priority = -1
1558
1564
1559 [[items]]
1565 [[items]]
1560 section = "merge-tools"
1566 section = "merge-tools"
1561 name = '.*\.executable$'
1567 name = '.*\.executable$'
1562 default-type = "dynamic"
1568 default-type = "dynamic"
1563 generic = true
1569 generic = true
1564 priority = -1
1570 priority = -1
1565
1571
1566 [[items]]
1572 [[items]]
1567 section = "merge-tools"
1573 section = "merge-tools"
1568 name = '.*\.fixeol$'
1574 name = '.*\.fixeol$'
1569 default = false
1575 default = false
1570 generic = true
1576 generic = true
1571 priority = -1
1577 priority = -1
1572
1578
1573 [[items]]
1579 [[items]]
1574 section = "merge-tools"
1580 section = "merge-tools"
1575 name = '.*\.gui$'
1581 name = '.*\.gui$'
1576 default = false
1582 default = false
1577 generic = true
1583 generic = true
1578 priority = -1
1584 priority = -1
1579
1585
1580 [[items]]
1586 [[items]]
1581 section = "merge-tools"
1587 section = "merge-tools"
1582 name = '.*\.mergemarkers$'
1588 name = '.*\.mergemarkers$'
1583 default = "basic"
1589 default = "basic"
1584 generic = true
1590 generic = true
1585 priority = -1
1591 priority = -1
1586
1592
1587 [[items]]
1593 [[items]]
1588 section = "merge-tools"
1594 section = "merge-tools"
1589 name = '.*\.mergemarkertemplate$' # take from command-templates.mergemarker
1595 name = '.*\.mergemarkertemplate$' # take from command-templates.mergemarker
1590 default-type = "dynamic"
1596 default-type = "dynamic"
1591 generic = true
1597 generic = true
1592 priority = -1
1598 priority = -1
1593
1599
1594 [[items]]
1600 [[items]]
1595 section = "merge-tools"
1601 section = "merge-tools"
1596 name = '.*\.premerge$'
1602 name = '.*\.premerge$'
1597 default-type = "dynamic"
1603 default-type = "dynamic"
1598 generic = true
1604 generic = true
1599 priority = -1
1605 priority = -1
1600
1606
1601 [[items]]
1607 [[items]]
1602 section = "merge-tools"
1608 section = "merge-tools"
1603 name = '.*\.priority$'
1609 name = '.*\.priority$'
1604 default = 0
1610 default = 0
1605 generic = true
1611 generic = true
1606 priority = -1
1612 priority = -1
1607
1613
1608 [[items]]
1614 [[items]]
1609 section = "merge-tools"
1615 section = "merge-tools"
1610 name = '.*\.regappend$'
1616 name = '.*\.regappend$'
1611 default = ""
1617 default = ""
1612 generic = true
1618 generic = true
1613 priority = -1
1619 priority = -1
1614
1620
1615 [[items]]
1621 [[items]]
1616 section = "merge-tools"
1622 section = "merge-tools"
1617 name = '.*\.symlink$'
1623 name = '.*\.symlink$'
1618 default = false
1624 default = false
1619 generic = true
1625 generic = true
1620 priority = -1
1626 priority = -1
1621
1627
1622 [[items]]
1628 [[items]]
1623 section = "pager"
1629 section = "pager"
1624 name = "attend-.*"
1630 name = "attend-.*"
1625 default-type = "dynamic"
1631 default-type = "dynamic"
1626 generic = true
1632 generic = true
1627
1633
1628 [[items]]
1634 [[items]]
1629 section = "pager"
1635 section = "pager"
1630 name = "ignore"
1636 name = "ignore"
1631 default-type = "list_type"
1637 default-type = "list_type"
1632
1638
1633 [[items]]
1639 [[items]]
1634 section = "pager"
1640 section = "pager"
1635 name = "pager"
1641 name = "pager"
1636 default-type = "dynamic"
1642 default-type = "dynamic"
1637
1643
1638 [[items]]
1644 [[items]]
1639 section = "partial-merge-tools"
1645 section = "partial-merge-tools"
1640 name = ".*"
1646 name = ".*"
1641 generic = true
1647 generic = true
1642 experimental = true
1648 experimental = true
1643
1649
1644 [[items]]
1650 [[items]]
1645 section = "partial-merge-tools"
1651 section = "partial-merge-tools"
1646 name = '.*\.args'
1652 name = '.*\.args'
1647 default = "$local $base $other"
1653 default = "$local $base $other"
1648 generic = true
1654 generic = true
1649 priority = -1
1655 priority = -1
1650 experimental = true
1656 experimental = true
1651
1657
1652 [[items]]
1658 [[items]]
1653 section = "partial-merge-tools"
1659 section = "partial-merge-tools"
1654 name = '.*\.disable'
1660 name = '.*\.disable'
1655 default = false
1661 default = false
1656 generic = true
1662 generic = true
1657 priority = -1
1663 priority = -1
1658 experimental = true
1664 experimental = true
1659
1665
1660 [[items]]
1666 [[items]]
1661 section = "partial-merge-tools"
1667 section = "partial-merge-tools"
1662 name = '.*\.executable$'
1668 name = '.*\.executable$'
1663 default-type = "dynamic"
1669 default-type = "dynamic"
1664 generic = true
1670 generic = true
1665 priority = -1
1671 priority = -1
1666 experimental = true
1672 experimental = true
1667
1673
1668 [[items]]
1674 [[items]]
1669 section = "partial-merge-tools"
1675 section = "partial-merge-tools"
1670 name = '.*\.order'
1676 name = '.*\.order'
1671 default = 0
1677 default = 0
1672 generic = true
1678 generic = true
1673 priority = -1
1679 priority = -1
1674 experimental = true
1680 experimental = true
1675
1681
1676 [[items]]
1682 [[items]]
1677 section = "partial-merge-tools"
1683 section = "partial-merge-tools"
1678 name = '.*\.patterns'
1684 name = '.*\.patterns'
1679 default-type = "dynamic"
1685 default-type = "dynamic"
1680 generic = true
1686 generic = true
1681 priority = -1
1687 priority = -1
1682 experimental = true
1688 experimental = true
1683
1689
1684 [[items]]
1690 [[items]]
1685 section = "patch"
1691 section = "patch"
1686 name = "eol"
1692 name = "eol"
1687 default = "strict"
1693 default = "strict"
1688
1694
1689 [[items]]
1695 [[items]]
1690 section = "patch"
1696 section = "patch"
1691 name = "fuzz"
1697 name = "fuzz"
1692 default = 2
1698 default = 2
1693
1699
1694 [[items]]
1700 [[items]]
1695 section = "paths"
1701 section = "paths"
1696 name = "[^:]*"
1702 name = "[^:]*"
1697 generic = true
1703 generic = true
1698
1704
1699 [[items]]
1705 [[items]]
1700 section = "paths"
1706 section = "paths"
1701 name = ".*:bookmarks.mode"
1707 name = ".*:bookmarks.mode"
1702 default = "default"
1708 default = "default"
1703 generic = true
1709 generic = true
1704
1710
1705 [[items]]
1711 [[items]]
1706 section = "paths"
1712 section = "paths"
1707 name = ".*:multi-urls"
1713 name = ".*:multi-urls"
1708 default = false
1714 default = false
1709 generic = true
1715 generic = true
1710
1716
1711 [[items]]
1717 [[items]]
1712 section = "paths"
1718 section = "paths"
1713 name = ".*:pulled-delta-reuse-policy"
1719 name = ".*:pulled-delta-reuse-policy"
1714 generic = true
1720 generic = true
1715
1721
1716 [[items]]
1722 [[items]]
1717 section = "paths"
1723 section = "paths"
1718 name = ".*:pushrev"
1724 name = ".*:pushrev"
1719 generic = true
1725 generic = true
1720
1726
1721 [[items]]
1727 [[items]]
1722 section = "paths"
1728 section = "paths"
1723 name = ".*:pushurl"
1729 name = ".*:pushurl"
1724 generic = true
1730 generic = true
1725
1731
1726 [[items]]
1732 [[items]]
1727 section = "paths"
1733 section = "paths"
1728 name = "default"
1734 name = "default"
1729
1735
1730 [[items]]
1736 [[items]]
1731 section = "paths"
1737 section = "paths"
1732 name = "default-push"
1738 name = "default-push"
1733
1739
1734 [[items]]
1740 [[items]]
1735 section = "phases"
1741 section = "phases"
1736 name = "checksubrepos"
1742 name = "checksubrepos"
1737 default = "follow"
1743 default = "follow"
1738
1744
1739 [[items]]
1745 [[items]]
1740 section = "phases"
1746 section = "phases"
1741 name = "new-commit"
1747 name = "new-commit"
1742 default = "draft"
1748 default = "draft"
1743
1749
1744 [[items]]
1750 [[items]]
1745 section = "phases"
1751 section = "phases"
1746 name = "publish"
1752 name = "publish"
1747 default = true
1753 default = true
1748
1754
1749 [[items]]
1755 [[items]]
1750 section = "profiling"
1756 section = "profiling"
1751 name = "enabled"
1757 name = "enabled"
1752 default = false
1758 default = false
1753
1759
1754 [[items]]
1760 [[items]]
1755 section = "profiling"
1761 section = "profiling"
1756 name = "format"
1762 name = "format"
1757 default = "text"
1763 default = "text"
1758
1764
1759 [[items]]
1765 [[items]]
1760 section = "profiling"
1766 section = "profiling"
1761 name = "freq"
1767 name = "freq"
1762 default = 1000
1768 default = 1000
1763
1769
1764 [[items]]
1770 [[items]]
1765 section = "profiling"
1771 section = "profiling"
1766 name = "limit"
1772 name = "limit"
1767 default = 30
1773 default = 30
1768
1774
1769 [[items]]
1775 [[items]]
1770 section = "profiling"
1776 section = "profiling"
1771 name = "nested"
1777 name = "nested"
1772 default = 0
1778 default = 0
1773
1779
1774 [[items]]
1780 [[items]]
1775 section = "profiling"
1781 section = "profiling"
1776 name = "output"
1782 name = "output"
1777
1783
1778 [[items]]
1784 [[items]]
1779 section = "profiling"
1785 section = "profiling"
1780 name = "showmax"
1786 name = "showmax"
1781 default = 0.999
1787 default = 0.999
1782
1788
1783 [[items]]
1789 [[items]]
1784 section = "profiling"
1790 section = "profiling"
1785 name = "showmin"
1791 name = "showmin"
1786 default-type = "dynamic"
1792 default-type = "dynamic"
1787
1793
1788 [[items]]
1794 [[items]]
1789 section = "profiling"
1795 section = "profiling"
1790 name = "showtime"
1796 name = "showtime"
1791 default = true
1797 default = true
1792
1798
1793 [[items]]
1799 [[items]]
1794 section = "profiling"
1800 section = "profiling"
1795 name = "sort"
1801 name = "sort"
1796 default = "inlinetime"
1802 default = "inlinetime"
1797
1803
1798 [[items]]
1804 [[items]]
1799 section = "profiling"
1805 section = "profiling"
1800 name = "statformat"
1806 name = "statformat"
1801 default = "hotpath"
1807 default = "hotpath"
1802
1808
1803 [[items]]
1809 [[items]]
1804 section = "profiling"
1810 section = "profiling"
1805 name = "time-track"
1811 name = "time-track"
1806 default-type = "dynamic"
1812 default-type = "dynamic"
1807
1813
1808 [[items]]
1814 [[items]]
1809 section = "profiling"
1815 section = "profiling"
1810 name = "type"
1816 name = "type"
1811 default = "stat"
1817 default = "stat"
1812
1818
1813 [[items]]
1819 [[items]]
1814 section = "profiling"
1820 section = "profiling"
1815 name = "py-spy.exe"
1821 name = "py-spy.exe"
1816 default = "py-spy"
1822 default = "py-spy"
1817
1823
1818 [[items]]
1824 [[items]]
1819 section = "profiling"
1825 section = "profiling"
1820 name = "py-spy.freq"
1826 name = "py-spy.freq"
1821 default = 100
1827 default = 100
1822
1828
1823 [[items]]
1829 [[items]]
1824 section = "profiling"
1830 section = "profiling"
1825 name = "py-spy.format"
1831 name = "py-spy.format"
1826
1832
1827 [[items]]
1833 [[items]]
1828 section = "progress"
1834 section = "progress"
1829 name = "assume-tty"
1835 name = "assume-tty"
1830 default = false
1836 default = false
1831
1837
1832 [[items]]
1838 [[items]]
1833 section = "progress"
1839 section = "progress"
1834 name = "changedelay"
1840 name = "changedelay"
1835 default = 1
1841 default = 1
1836
1842
1837 [[items]]
1843 [[items]]
1838 section = "progress"
1844 section = "progress"
1839 name = "clear-complete"
1845 name = "clear-complete"
1840 default = true
1846 default = true
1841
1847
1842 [[items]]
1848 [[items]]
1843 section = "progress"
1849 section = "progress"
1844 name = "debug"
1850 name = "debug"
1845 default = false
1851 default = false
1846
1852
1847 [[items]]
1853 [[items]]
1848 section = "progress"
1854 section = "progress"
1849 name = "delay"
1855 name = "delay"
1850 default = 3
1856 default = 3
1851
1857
1852 [[items]]
1858 [[items]]
1853 section = "progress"
1859 section = "progress"
1854 name = "disable"
1860 name = "disable"
1855 default = false
1861 default = false
1856
1862
1857 [[items]]
1863 [[items]]
1858 section = "progress"
1864 section = "progress"
1859 name = "estimateinterval"
1865 name = "estimateinterval"
1860 default = 60.0
1866 default = 60.0
1861
1867
1862 [[items]]
1868 [[items]]
1863 section = "progress"
1869 section = "progress"
1864 name = "format"
1870 name = "format"
1865 default-type = "lambda"
1871 default-type = "lambda"
1866 default = [ "topic", "bar", "number", "estimate",]
1872 default = [ "topic", "bar", "number", "estimate",]
1867
1873
1868 [[items]]
1874 [[items]]
1869 section = "progress"
1875 section = "progress"
1870 name = "refresh"
1876 name = "refresh"
1871 default = 0.1
1877 default = 0.1
1872
1878
1873 [[items]]
1879 [[items]]
1874 section = "progress"
1880 section = "progress"
1875 name = "width"
1881 name = "width"
1876 default-type = "dynamic"
1882 default-type = "dynamic"
1877
1883
1878 [[items]]
1884 [[items]]
1879 section = "pull"
1885 section = "pull"
1880 name = "confirm"
1886 name = "confirm"
1881 default = false
1887 default = false
1882
1888
1883 [[items]]
1889 [[items]]
1884 section = "push"
1890 section = "push"
1885 name = "pushvars.server"
1891 name = "pushvars.server"
1886 default = false
1892 default = false
1887
1893
1888 [[items]]
1894 [[items]]
1889 section = "rebase"
1895 section = "rebase"
1890 name = "experimental.inmemory"
1896 name = "experimental.inmemory"
1891 default = false
1897 default = false
1892
1898
1893 [[items]]
1899 [[items]]
1894 section = "rebase"
1900 section = "rebase"
1895 name = "singletransaction"
1901 name = "singletransaction"
1896 default = false
1902 default = false
1897
1903
1898 [[items]]
1904 [[items]]
1899 section = "rebase"
1905 section = "rebase"
1900 name = "store-source"
1906 name = "store-source"
1901 default = true
1907 default = true
1902 experimental = true
1908 experimental = true
1903 documentation = """Controls creation of a `rebase_source` extra field during rebase.
1909 documentation = """Controls creation of a `rebase_source` extra field during rebase.
1904 When false, no such field is created. This is useful e.g. for incrementally \
1910 When false, no such field is created. This is useful e.g. for incrementally \
1905 converting changesets and then rebasing them onto an existing repo.
1911 converting changesets and then rebasing them onto an existing repo.
1906 WARNING: this is an advanced setting reserved for people who know \
1912 WARNING: this is an advanced setting reserved for people who know \
1907 exactly what they are doing. Misuse of this setting can easily \
1913 exactly what they are doing. Misuse of this setting can easily \
1908 result in obsmarker cycles and a vivid headache."""
1914 result in obsmarker cycles and a vivid headache."""
1909
1915
1910 [[items]]
1916 [[items]]
1911 section = "rewrite"
1917 section = "rewrite"
1912 name = "backup-bundle"
1918 name = "backup-bundle"
1913 default = true
1919 default = true
1914 alias = [["ui", "history-editing-backup"]]
1920 alias = [["ui", "history-editing-backup"]]
1915
1921
1916 [[items]]
1922 [[items]]
1917 section = "rewrite"
1923 section = "rewrite"
1918 name = "empty-successor"
1924 name = "empty-successor"
1919 default = "skip"
1925 default = "skip"
1920 experimental = true
1926 experimental = true
1921
1927
1922 [[items]]
1928 [[items]]
1923 section = "rewrite"
1929 section = "rewrite"
1924 name = "update-timestamp"
1930 name = "update-timestamp"
1925 default = false
1931 default = false
1926
1932
1927 [[items]]
1933 [[items]]
1928 section = "rhg"
1934 section = "rhg"
1929 name = "cat"
1935 name = "cat"
1930 default = true
1936 default = true
1931 experimental = true
1937 experimental = true
1932 documentation = """rhg cat has some quirks that need to be ironed out. \
1938 documentation = """rhg cat has some quirks that need to be ironed out. \
1933 In particular, the `-r` argument accepts a partial hash, but does not \
1939 In particular, the `-r` argument accepts a partial hash, but does not \
1934 correctly resolve `abcdef` as a potential bookmark, tag or branch name."""
1940 correctly resolve `abcdef` as a potential bookmark, tag or branch name."""
1935
1941
1936 [[items]]
1942 [[items]]
1937 section = "rhg"
1943 section = "rhg"
1938 name = "fallback-exectutable"
1944 name = "fallback-exectutable"
1939 experimental = true
1945 experimental = true
1940
1946
1941 [[items]]
1947 [[items]]
1942 section = "rhg"
1948 section = "rhg"
1943 name = "fallback-immediately"
1949 name = "fallback-immediately"
1944 default = false
1950 default = false
1945 experimental = true
1951 experimental = true
1946
1952
1947 [[items]]
1953 [[items]]
1948 section = "rhg"
1954 section = "rhg"
1949 name = "ignored-extensions"
1955 name = "ignored-extensions"
1950 default-type = "list_type"
1956 default-type = "list_type"
1951 experimental = true
1957 experimental = true
1952
1958
1953 [[items]]
1959 [[items]]
1954 section = "rhg"
1960 section = "rhg"
1955 name = "on-unsupported"
1961 name = "on-unsupported"
1956 default = "abort"
1962 default = "abort"
1957 experimental = true
1963 experimental = true
1958
1964
1959 [[items]]
1965 [[items]]
1960 section = "server"
1966 section = "server"
1961 name = "bookmarks-pushkey-compat"
1967 name = "bookmarks-pushkey-compat"
1962 default = true
1968 default = true
1963
1969
1964 [[items]]
1970 [[items]]
1965 section = "server"
1971 section = "server"
1966 name = "bundle1"
1972 name = "bundle1"
1967 default = true
1973 default = true
1968
1974
1969 [[items]]
1975 [[items]]
1970 section = "server"
1976 section = "server"
1971 name = "bundle1.pull"
1977 name = "bundle1.pull"
1972
1978
1973 [[items]]
1979 [[items]]
1974 section = "server"
1980 section = "server"
1975 name = "bundle1.push"
1981 name = "bundle1.push"
1976
1982
1977 [[items]]
1983 [[items]]
1978 section = "server"
1984 section = "server"
1979 name = "bundle1gd"
1985 name = "bundle1gd"
1980
1986
1981 [[items]]
1987 [[items]]
1982 section = "server"
1988 section = "server"
1983 name = "bundle1gd.pull"
1989 name = "bundle1gd.pull"
1984
1990
1985 [[items]]
1991 [[items]]
1986 section = "server"
1992 section = "server"
1987 name = "bundle1gd.push"
1993 name = "bundle1gd.push"
1988
1994
1989 [[items]]
1995 [[items]]
1990 section = "server"
1996 section = "server"
1991 name = "bundle2.stream"
1997 name = "bundle2.stream"
1992 default = true
1998 default = true
1993 alias = [["experimental", "bundle2.stream"]]
1999 alias = [["experimental", "bundle2.stream"]]
1994
2000
1995 [[items]]
2001 [[items]]
1996 section = "server"
2002 section = "server"
1997 name = "compressionengines"
2003 name = "compressionengines"
1998 default-type = "list_type"
2004 default-type = "list_type"
1999
2005
2000 [[items]]
2006 [[items]]
2001 section = "server"
2007 section = "server"
2002 name = "concurrent-push-mode"
2008 name = "concurrent-push-mode"
2003 default = "check-related"
2009 default = "check-related"
2004
2010
2005 [[items]]
2011 [[items]]
2006 section = "server"
2012 section = "server"
2007 name = "disablefullbundle"
2013 name = "disablefullbundle"
2008 default = false
2014 default = false
2009
2015
2010 [[items]]
2016 [[items]]
2011 section = "server"
2017 section = "server"
2012 name = "maxhttpheaderlen"
2018 name = "maxhttpheaderlen"
2013 default = 1024
2019 default = 1024
2014
2020
2015 [[items]]
2021 [[items]]
2016 section = "server"
2022 section = "server"
2017 name = "preferuncompressed"
2023 name = "preferuncompressed"
2018 default = false
2024 default = false
2019
2025
2020 [[items]]
2026 [[items]]
2021 section = "server"
2027 section = "server"
2022 name = "pullbundle"
2028 name = "pullbundle"
2023 default = true
2029 default = true
2024
2030
2025 [[items]]
2031 [[items]]
2026 section = "server"
2032 section = "server"
2027 name = "streamunbundle"
2033 name = "streamunbundle"
2028 default = false
2034 default = false
2029
2035
2030 [[items]]
2036 [[items]]
2031 section = "server"
2037 section = "server"
2032 name = "uncompressed"
2038 name = "uncompressed"
2033 default = true
2039 default = true
2034
2040
2035 [[items]]
2041 [[items]]
2036 section = "server"
2042 section = "server"
2037 name = "uncompressedallowsecret"
2043 name = "uncompressedallowsecret"
2038 default = false
2044 default = false
2039
2045
2040 [[items]]
2046 [[items]]
2041 section = "server"
2047 section = "server"
2042 name = "validate"
2048 name = "validate"
2043 default = false
2049 default = false
2044
2050
2045 [[items]]
2051 [[items]]
2046 section = "server"
2052 section = "server"
2047 name = "view"
2053 name = "view"
2048 default = "served"
2054 default = "served"
2049
2055
2050 [[items]]
2056 [[items]]
2051 section = "server"
2057 section = "server"
2052 name = "zliblevel"
2058 name = "zliblevel"
2053 default = -1
2059 default = -1
2054
2060
2055 [[items]]
2061 [[items]]
2056 section = "server"
2062 section = "server"
2057 name = "zstdlevel"
2063 name = "zstdlevel"
2058 default = 3
2064 default = 3
2059
2065
2060 [[items]]
2066 [[items]]
2061 section = "share"
2067 section = "share"
2062 name = "pool"
2068 name = "pool"
2063
2069
2064 [[items]]
2070 [[items]]
2065 section = "share"
2071 section = "share"
2066 name = "poolnaming"
2072 name = "poolnaming"
2067 default = "identity"
2073 default = "identity"
2068
2074
2069 [[items]]
2075 [[items]]
2070 section = "share"
2076 section = "share"
2071 name = "safe-mismatch.source-not-safe"
2077 name = "safe-mismatch.source-not-safe"
2072 default = "abort"
2078 default = "abort"
2073
2079
2074 [[items]]
2080 [[items]]
2075 section = "share"
2081 section = "share"
2076 name = "safe-mismatch.source-not-safe.warn"
2082 name = "safe-mismatch.source-not-safe.warn"
2077 default = true
2083 default = true
2078
2084
2079 [[items]]
2085 [[items]]
2080 section = "share"
2086 section = "share"
2081 name = "safe-mismatch.source-not-safe:verbose-upgrade"
2087 name = "safe-mismatch.source-not-safe:verbose-upgrade"
2082 default = true
2088 default = true
2083
2089
2084 [[items]]
2090 [[items]]
2085 section = "share"
2091 section = "share"
2086 name = "safe-mismatch.source-safe"
2092 name = "safe-mismatch.source-safe"
2087 default = "abort"
2093 default = "abort"
2088
2094
2089 [[items]]
2095 [[items]]
2090 section = "share"
2096 section = "share"
2091 name = "safe-mismatch.source-safe.warn"
2097 name = "safe-mismatch.source-safe.warn"
2092 default = true
2098 default = true
2093
2099
2094 [[items]]
2100 [[items]]
2095 section = "share"
2101 section = "share"
2096 name = "safe-mismatch.source-safe:verbose-upgrade"
2102 name = "safe-mismatch.source-safe:verbose-upgrade"
2097 default = true
2103 default = true
2098
2104
2099 [[items]]
2105 [[items]]
2100 section = "shelve"
2106 section = "shelve"
2101 name = "maxbackups"
2107 name = "maxbackups"
2102 default = 10
2108 default = 10
2103
2109
2104 [[items]]
2110 [[items]]
2105 section = "shelve"
2111 section = "shelve"
2106 name = "store"
2112 name = "store"
2107 default = "internal"
2113 default = "internal"
2108 experimental = true
2114 experimental = true
2109
2115
2110 [[items]]
2116 [[items]]
2111 section = "smtp"
2117 section = "smtp"
2112 name = "host"
2118 name = "host"
2113
2119
2114 [[items]]
2120 [[items]]
2115 section = "smtp"
2121 section = "smtp"
2116 name = "local_hostname"
2122 name = "local_hostname"
2117
2123
2118 [[items]]
2124 [[items]]
2119 section = "smtp"
2125 section = "smtp"
2120 name = "password"
2126 name = "password"
2121
2127
2122 [[items]]
2128 [[items]]
2123 section = "smtp"
2129 section = "smtp"
2124 name = "port"
2130 name = "port"
2125 default-type = "dynamic"
2131 default-type = "dynamic"
2126
2132
2127 [[items]]
2133 [[items]]
2128 section = "smtp"
2134 section = "smtp"
2129 name = "tls"
2135 name = "tls"
2130 default = "none"
2136 default = "none"
2131
2137
2132 [[items]]
2138 [[items]]
2133 section = "smtp"
2139 section = "smtp"
2134 name = "username"
2140 name = "username"
2135
2141
2136 [[items]]
2142 [[items]]
2137 section = "sparse"
2143 section = "sparse"
2138 name = "missingwarning"
2144 name = "missingwarning"
2139 default = true
2145 default = true
2140 experimental = true
2146 experimental = true
2141
2147
2142
2148
2143 # The "storage" section house config options that change how the repository
2149 # The "storage" section house config options that change how the repository
2144 # data are accessed by the current process but does not affects the on disk
2150 # data are accessed by the current process but does not affects the on disk
2145 # format. They can also adjust how the storage is computed, but without affect
2151 # format. They can also adjust how the storage is computed, but without affect
2146 # compatibility wither other clients.
2152 # compatibility wither other clients.
2147 #
2153 #
2148 # For deeper format change, see the `format` section.
2154 # For deeper format change, see the `format` section.
2149
2155
2150
2156
2151 [[items]]
2157 [[items]]
2152 section = "storage"
2158 section = "storage"
2153 name = "dirstate-v2.slow-path"
2159 name = "dirstate-v2.slow-path"
2154 default = "abort"
2160 default = "abort"
2155 experimental = true # experimental as long as format.use-dirstate-v2 is.
2161 experimental = true # experimental as long as format.use-dirstate-v2 is.
2156
2162
2157 [[items]]
2163 [[items]]
2158 section = "storage"
2164 section = "storage"
2159 name = "revbranchcache.mmap"
2165 name = "revbranchcache.mmap"
2160 default = false
2166 default = false
2161
2167
2162 [[items]]
2168 [[items]]
2163 section = "storage"
2169 section = "storage"
2164 name = "new-repo-backend"
2170 name = "new-repo-backend"
2165 default = "revlogv1"
2171 default = "revlogv1"
2166 experimental = true
2172 experimental = true
2167
2173
2168 [[items]]
2174 [[items]]
2169 section = "storage"
2175 section = "storage"
2170 name = "revlog.delta-parent-search.candidate-group-chunk-size"
2176 name = "revlog.delta-parent-search.candidate-group-chunk-size"
2171 default = 20
2177 default = 20
2172
2178
2173 [[items]]
2179 [[items]]
2174 section = "storage"
2180 section = "storage"
2175 name = "revlog.issue6528.fix-incoming"
2181 name = "revlog.issue6528.fix-incoming"
2176 default = true
2182 default = true
2177
2183
2178 [[items]]
2184 [[items]]
2179 section = "storage"
2185 section = "storage"
2180 name = "revlog.mmap.index"
2186 name = "revlog.mmap.index"
2181 default-type = "dynamic"
2187 default-type = "dynamic"
2182
2188
2183 [[items]]
2189 [[items]]
2184 section = "storage"
2190 section = "storage"
2185 name = "revlog.mmap.index:size-threshold"
2191 name = "revlog.mmap.index:size-threshold"
2186 default = "1 MB"
2192 default = "1 MB"
2187
2193
2188 [[items]]
2194 [[items]]
2189 section = "storage"
2195 section = "storage"
2190 name = "revlog.optimize-delta-parent-choice"
2196 name = "revlog.optimize-delta-parent-choice"
2191 default = true
2197 default = true
2192 alias = [["format", "aggressivemergedeltas"]]
2198 alias = [["format", "aggressivemergedeltas"]]
2193
2199
2194 [[items]]
2200 [[items]]
2195 section = "storage"
2201 section = "storage"
2196 name = "revlog.persistent-nodemap.mmap"
2202 name = "revlog.persistent-nodemap.mmap"
2197 default = true
2203 default = true
2198
2204
2199 [[items]]
2205 [[items]]
2200 section = "storage"
2206 section = "storage"
2201 name = "revlog.persistent-nodemap.slow-path"
2207 name = "revlog.persistent-nodemap.slow-path"
2202 default = "abort"
2208 default = "abort"
2203
2209
2204 [[items]]
2210 [[items]]
2205 section = "storage"
2211 section = "storage"
2206 name = "revlog.reuse-external-delta"
2212 name = "revlog.reuse-external-delta"
2207 default = true
2213 default = true
2208
2214
2209 [[items]]
2215 [[items]]
2210 section = "storage"
2216 section = "storage"
2211 name = "revlog.reuse-external-delta-parent"
2217 name = "revlog.reuse-external-delta-parent"
2212 documentation = """This option is true unless `format.generaldelta` is set."""
2218 documentation = """This option is true unless `format.generaldelta` is set."""
2213
2219
2214 [[items]]
2220 [[items]]
2215 section = "storage"
2221 section = "storage"
2216 name = "revlog.zlib.level"
2222 name = "revlog.zlib.level"
2217
2223
2218 [[items]]
2224 [[items]]
2219 section = "storage"
2225 section = "storage"
2220 name = "revlog.zstd.level"
2226 name = "revlog.zstd.level"
2221
2227
2222 [[items]]
2228 [[items]]
2223 section = "subrepos"
2229 section = "subrepos"
2224 name = "allowed"
2230 name = "allowed"
2225 default-type = "dynamic" # to make backporting simpler
2231 default-type = "dynamic" # to make backporting simpler
2226
2232
2227 [[items]]
2233 [[items]]
2228 section = "subrepos"
2234 section = "subrepos"
2229 name = "git:allowed"
2235 name = "git:allowed"
2230 default-type = "dynamic"
2236 default-type = "dynamic"
2231
2237
2232 [[items]]
2238 [[items]]
2233 section = "subrepos"
2239 section = "subrepos"
2234 name = "hg:allowed"
2240 name = "hg:allowed"
2235 default-type = "dynamic"
2241 default-type = "dynamic"
2236
2242
2237 [[items]]
2243 [[items]]
2238 section = "subrepos"
2244 section = "subrepos"
2239 name = "svn:allowed"
2245 name = "svn:allowed"
2240 default-type = "dynamic"
2246 default-type = "dynamic"
2241
2247
2242 [[items]]
2248 [[items]]
2243 section = "templateconfig"
2249 section = "templateconfig"
2244 name = ".*"
2250 name = ".*"
2245 default-type = "dynamic"
2251 default-type = "dynamic"
2246 generic = true
2252 generic = true
2247
2253
2248 [[items]]
2254 [[items]]
2249 section = "templates"
2255 section = "templates"
2250 name = ".*"
2256 name = ".*"
2251 generic = true
2257 generic = true
2252
2258
2253 [[items]]
2259 [[items]]
2254 section = "trusted"
2260 section = "trusted"
2255 name = "groups"
2261 name = "groups"
2256 default-type = "list_type"
2262 default-type = "list_type"
2257
2263
2258 [[items]]
2264 [[items]]
2259 section = "trusted"
2265 section = "trusted"
2260 name = "users"
2266 name = "users"
2261 default-type = "list_type"
2267 default-type = "list_type"
2262
2268
2263 [[items]]
2269 [[items]]
2264 section = "ui"
2270 section = "ui"
2265 name = "_usedassubrepo"
2271 name = "_usedassubrepo"
2266 default = false
2272 default = false
2267
2273
2268 [[items]]
2274 [[items]]
2269 section = "ui"
2275 section = "ui"
2270 name = "allowemptycommit"
2276 name = "allowemptycommit"
2271 default = false
2277 default = false
2272
2278
2273 [[items]]
2279 [[items]]
2274 section = "ui"
2280 section = "ui"
2275 name = "archivemeta"
2281 name = "archivemeta"
2276 default = true
2282 default = true
2277
2283
2278 [[items]]
2284 [[items]]
2279 section = "ui"
2285 section = "ui"
2280 name = "askusername"
2286 name = "askusername"
2281 default = false
2287 default = false
2282
2288
2283 [[items]]
2289 [[items]]
2284 section = "ui"
2290 section = "ui"
2285 name = "available-memory"
2291 name = "available-memory"
2286
2292
2287 [[items]]
2293 [[items]]
2288 section = "ui"
2294 section = "ui"
2289 name = "clonebundlefallback"
2295 name = "clonebundlefallback"
2290 default = false
2296 default = false
2291
2297
2292 [[items]]
2298 [[items]]
2293 section = "ui"
2299 section = "ui"
2294 name = "clonebundleprefers"
2300 name = "clonebundleprefers"
2295 default-type = "list_type"
2301 default-type = "list_type"
2296
2302
2297 [[items]]
2303 [[items]]
2298 section = "ui"
2304 section = "ui"
2299 name = "clonebundles"
2305 name = "clonebundles"
2300 default = true
2306 default = true
2301
2307
2302 [[items]]
2308 [[items]]
2303 section = "ui"
2309 section = "ui"
2304 name = "color"
2310 name = "color"
2305 default = "auto"
2311 default = "auto"
2306
2312
2307 [[items]]
2313 [[items]]
2308 section = "ui"
2314 section = "ui"
2309 name = "commitsubrepos"
2315 name = "commitsubrepos"
2310 default = false
2316 default = false
2311
2317
2312 [[items]]
2318 [[items]]
2313 section = "ui"
2319 section = "ui"
2314 name = "debug"
2320 name = "debug"
2315 default = false
2321 default = false
2316
2322
2317 [[items]]
2323 [[items]]
2318 section = "ui"
2324 section = "ui"
2319 name = "debugger"
2325 name = "debugger"
2320
2326
2321 [[items]]
2327 [[items]]
2322 section = "ui"
2328 section = "ui"
2323 name = "detailed-exit-code"
2329 name = "detailed-exit-code"
2324 default = false
2330 default = false
2325 experimental = true
2331 experimental = true
2326
2332
2327 [[items]]
2333 [[items]]
2328 section = "ui"
2334 section = "ui"
2329 name = "editor"
2335 name = "editor"
2330 default-type = "dynamic"
2336 default-type = "dynamic"
2331
2337
2332 [[items]]
2338 [[items]]
2333 section = "ui"
2339 section = "ui"
2334 name = "fallbackencoding"
2340 name = "fallbackencoding"
2335
2341
2336 [[items]]
2342 [[items]]
2337 section = "ui"
2343 section = "ui"
2338 name = "forcecwd"
2344 name = "forcecwd"
2339
2345
2340 [[items]]
2346 [[items]]
2341 section = "ui"
2347 section = "ui"
2342 name = "forcemerge"
2348 name = "forcemerge"
2343
2349
2344 [[items]]
2350 [[items]]
2345 section = "ui"
2351 section = "ui"
2346 name = "formatdebug"
2352 name = "formatdebug"
2347 default = false
2353 default = false
2348
2354
2349 [[items]]
2355 [[items]]
2350 section = "ui"
2356 section = "ui"
2351 name = "formatjson"
2357 name = "formatjson"
2352 default = false
2358 default = false
2353
2359
2354 [[items]]
2360 [[items]]
2355 section = "ui"
2361 section = "ui"
2356 name = "formatted"
2362 name = "formatted"
2357
2363
2358 [[items]]
2364 [[items]]
2359 section = "ui"
2365 section = "ui"
2360 name = "interactive"
2366 name = "interactive"
2361
2367
2362 [[items]]
2368 [[items]]
2363 section = "ui"
2369 section = "ui"
2364 name = "interface"
2370 name = "interface"
2365
2371
2366 [[items]]
2372 [[items]]
2367 section = "ui"
2373 section = "ui"
2368 name = "interface.chunkselector"
2374 name = "interface.chunkselector"
2369
2375
2370 [[items]]
2376 [[items]]
2371 section = "ui"
2377 section = "ui"
2372 name = "large-file-limit"
2378 name = "large-file-limit"
2373 default = 10485760
2379 default = 10485760
2374
2380
2375 [[items]]
2381 [[items]]
2376 section = "ui"
2382 section = "ui"
2377 name = "logblockedtimes"
2383 name = "logblockedtimes"
2378 default = false
2384 default = false
2379
2385
2380 [[items]]
2386 [[items]]
2381 section = "ui"
2387 section = "ui"
2382 name = "merge"
2388 name = "merge"
2383
2389
2384 [[items]]
2390 [[items]]
2385 section = "ui"
2391 section = "ui"
2386 name = "mergemarkers"
2392 name = "mergemarkers"
2387 default = "basic"
2393 default = "basic"
2388
2394
2389 [[items]]
2395 [[items]]
2390 section = "ui"
2396 section = "ui"
2391 name = "message-output"
2397 name = "message-output"
2392 default = "stdio"
2398 default = "stdio"
2393
2399
2394 [[items]]
2400 [[items]]
2395 section = "ui"
2401 section = "ui"
2396 name = "nontty"
2402 name = "nontty"
2397 default = false
2403 default = false
2398
2404
2399 [[items]]
2405 [[items]]
2400 section = "ui"
2406 section = "ui"
2401 name = "origbackuppath"
2407 name = "origbackuppath"
2402
2408
2403 [[items]]
2409 [[items]]
2404 section = "ui"
2410 section = "ui"
2405 name = "paginate"
2411 name = "paginate"
2406 default = true
2412 default = true
2407
2413
2408 [[items]]
2414 [[items]]
2409 section = "ui"
2415 section = "ui"
2410 name = "patch"
2416 name = "patch"
2411
2417
2412 [[items]]
2418 [[items]]
2413 section = "ui"
2419 section = "ui"
2414 name = "portablefilenames"
2420 name = "portablefilenames"
2415 default = "warn"
2421 default = "warn"
2416
2422
2417 [[items]]
2423 [[items]]
2418 section = "ui"
2424 section = "ui"
2419 name = "promptecho"
2425 name = "promptecho"
2420 default = false
2426 default = false
2421
2427
2422 [[items]]
2428 [[items]]
2423 section = "ui"
2429 section = "ui"
2424 name = "quiet"
2430 name = "quiet"
2425 default = false
2431 default = false
2426
2432
2427 [[items]]
2433 [[items]]
2428 section = "ui"
2434 section = "ui"
2429 name = "quietbookmarkmove"
2435 name = "quietbookmarkmove"
2430 default = false
2436 default = false
2431
2437
2432 [[items]]
2438 [[items]]
2433 section = "ui"
2439 section = "ui"
2434 name = "relative-paths"
2440 name = "relative-paths"
2435 default = "legacy"
2441 default = "legacy"
2436
2442
2437 [[items]]
2443 [[items]]
2438 section = "ui"
2444 section = "ui"
2439 name = "remotecmd"
2445 name = "remotecmd"
2440 default = "hg"
2446 default = "hg"
2441
2447
2442 [[items]]
2448 [[items]]
2443 section = "ui"
2449 section = "ui"
2444 name = "report_untrusted"
2450 name = "report_untrusted"
2445 default = true
2451 default = true
2446
2452
2447 [[items]]
2453 [[items]]
2448 section = "ui"
2454 section = "ui"
2449 name = "rollback"
2455 name = "rollback"
2450 default = true
2456 default = true
2451
2457
2452 [[items]]
2458 [[items]]
2453 section = "ui"
2459 section = "ui"
2454 name = "signal-safe-lock"
2460 name = "signal-safe-lock"
2455 default = true
2461 default = true
2456
2462
2457 [[items]]
2463 [[items]]
2458 section = "ui"
2464 section = "ui"
2459 name = "slash"
2465 name = "slash"
2460 default = false
2466 default = false
2461
2467
2462 [[items]]
2468 [[items]]
2463 section = "ui"
2469 section = "ui"
2464 name = "ssh"
2470 name = "ssh"
2465 default = "ssh"
2471 default = "ssh"
2466
2472
2467 [[items]]
2473 [[items]]
2468 section = "ui"
2474 section = "ui"
2469 name = "ssherrorhint"
2475 name = "ssherrorhint"
2470
2476
2471 [[items]]
2477 [[items]]
2472 section = "ui"
2478 section = "ui"
2473 name = "statuscopies"
2479 name = "statuscopies"
2474 default = false
2480 default = false
2475
2481
2476 [[items]]
2482 [[items]]
2477 section = "ui"
2483 section = "ui"
2478 name = "strict"
2484 name = "strict"
2479 default = false
2485 default = false
2480
2486
2481 [[items]]
2487 [[items]]
2482 section = "ui"
2488 section = "ui"
2483 name = "style"
2489 name = "style"
2484 default = ""
2490 default = ""
2485
2491
2486 [[items]]
2492 [[items]]
2487 section = "ui"
2493 section = "ui"
2488 name = "supportcontact"
2494 name = "supportcontact"
2489
2495
2490 [[items]]
2496 [[items]]
2491 section = "ui"
2497 section = "ui"
2492 name = "textwidth"
2498 name = "textwidth"
2493 default = 78
2499 default = 78
2494
2500
2495 [[items]]
2501 [[items]]
2496 section = "ui"
2502 section = "ui"
2497 name = "timeout"
2503 name = "timeout"
2498 default = "600"
2504 default = "600"
2499
2505
2500 [[items]]
2506 [[items]]
2501 section = "ui"
2507 section = "ui"
2502 name = "timeout.warn"
2508 name = "timeout.warn"
2503 default = 0
2509 default = 0
2504
2510
2505 [[items]]
2511 [[items]]
2506 section = "ui"
2512 section = "ui"
2507 name = "timestamp-output"
2513 name = "timestamp-output"
2508 default = false
2514 default = false
2509
2515
2510 [[items]]
2516 [[items]]
2511 section = "ui"
2517 section = "ui"
2512 name = "traceback"
2518 name = "traceback"
2513 default = false
2519 default = false
2514
2520
2515 [[items]]
2521 [[items]]
2516 section = "ui"
2522 section = "ui"
2517 name = "tweakdefaults"
2523 name = "tweakdefaults"
2518 default = false
2524 default = false
2519
2525
2520 [[items]]
2526 [[items]]
2521 section = "ui"
2527 section = "ui"
2522 name = "username"
2528 name = "username"
2523 alias = [["ui", "user"]]
2529 alias = [["ui", "user"]]
2524
2530
2525 [[items]]
2531 [[items]]
2526 section = "ui"
2532 section = "ui"
2527 name = "verbose"
2533 name = "verbose"
2528 default = false
2534 default = false
2529
2535
2530 [[items]]
2536 [[items]]
2531 section = "usage"
2537 section = "usage"
2532 name = "repository-role"
2538 name = "repository-role"
2533 default = "default"
2539 default = "default"
2534 documentation = """What this repository is used for.
2540 documentation = """What this repository is used for.
2535
2541
2536 This is used to adjust behavior and performance to best fit the repository purpose.
2542 This is used to adjust behavior and performance to best fit the repository purpose.
2537
2543
2538 Currently recognised values are:
2544 Currently recognised values are:
2539 - default: an all purpose repository
2545 - default: an all purpose repository
2540 """
2546 """
2541
2547
2542 [[items]]
2548 [[items]]
2543 section = "usage"
2549 section = "usage"
2544 name = "resources"
2550 name = "resources"
2545 default = "default"
2551 default = "default"
2546 documentation = """How aggressive Mercurial can be with resource usage:
2552 documentation = """How aggressive Mercurial can be with resource usage:
2547
2553
2548 Currently recognised values are:
2554 Currently recognised values are:
2549 - default: the default value currently is equivalent to medium,
2555 - default: the default value currently is equivalent to medium,
2550 - high: allows for higher cpu, memory and disk-space usage to improve the performance of some operations.
2556 - high: allows for higher cpu, memory and disk-space usage to improve the performance of some operations.
2551 - medium: aims at a moderate resource usage,
2557 - medium: aims at a moderate resource usage,
2552 - low: reduces resources usage when possible, decreasing overall performance.
2558 - low: reduces resources usage when possible, decreasing overall performance.
2553
2559
2554 For finer configuration, see also `usage.resources.cpu`,
2560 For finer configuration, see also `usage.resources.cpu`,
2555 `usage.resources.disk` and `usage.resources.memory`.
2561 `usage.resources.disk` and `usage.resources.memory`.
2556 """
2562 """
2557
2563
2558 [[items]]
2564 [[items]]
2559 section = "usage"
2565 section = "usage"
2560 name = "resources.cpu"
2566 name = "resources.cpu"
2561 default = "default"
2567 default = "default"
2562 documentation = """How aggressive Mercurial can be in terms of cpu usage:
2568 documentation = """How aggressive Mercurial can be in terms of cpu usage:
2563
2569
2564 Currently recognised values are:
2570 Currently recognised values are:
2565 - default: the default value, inherits the value from `usage.resources`,
2571 - default: the default value, inherits the value from `usage.resources`,
2566 - high: allows for more aggressive cpu usage, improving storage quality and
2572 - high: allows for more aggressive cpu usage, improving storage quality and
2567 the performance of some operations at the expense of machine load
2573 the performance of some operations at the expense of machine load
2568 - medium: aims at a moderate cpu usage,
2574 - medium: aims at a moderate cpu usage,
2569 - low: reduces cpu usage when possible, potentially at the expense of
2575 - low: reduces cpu usage when possible, potentially at the expense of
2570 slower operations, increased storage and exchange payload.
2576 slower operations, increased storage and exchange payload.
2571
2577
2572 """
2578 """
2573
2579
2574 [[items]]
2580 [[items]]
2575 section = "usage"
2581 section = "usage"
2576 name = "resources.disk"
2582 name = "resources.disk"
2577 default = "default"
2583 default = "default"
2578 documentation = """How aggressive Mercurial can be in terms of disk usage:
2584 documentation = """How aggressive Mercurial can be in terms of disk usage:
2579
2585
2580 Currently recognised values are:
2586 Currently recognised values are:
2581 - default: the default value, inherits the value from `usage.resources`,
2587 - default: the default value, inherits the value from `usage.resources`,
2582 - high: allows for more disk space usage where it can improve the performance,
2588 - high: allows for more disk space usage where it can improve the performance,
2583 - medium: aims at a moderate disk usage,
2589 - medium: aims at a moderate disk usage,
2584 - low: reduces disk usage when possible, decreasing performance in some occasion.
2590 - low: reduces disk usage when possible, decreasing performance in some occasion.
2585 """
2591 """
2586
2592
2587 [[items]]
2593 [[items]]
2588 section = "usage"
2594 section = "usage"
2589 name = "resources.memory"
2595 name = "resources.memory"
2590 default = "default"
2596 default = "default"
2591 documentation = """How aggressive Mercurial can be in terms of memory usage:
2597 documentation = """How aggressive Mercurial can be in terms of memory usage:
2592
2598
2593 Currently recognised values are:
2599 Currently recognised values are:
2594 - default: the default value, inherits the value from `usage.resources`,
2600 - default: the default value, inherits the value from `usage.resources`,
2595 - high: allows for more aggressive memory usage to improve overall performance,
2601 - high: allows for more aggressive memory usage to improve overall performance,
2596 - medium: aims at a moderate memory usage,
2602 - medium: aims at a moderate memory usage,
2597 - low: reduces memory usage when possible at the cost of overall performance.
2603 - low: reduces memory usage when possible at the cost of overall performance.
2598 """
2604 """
2599
2605
2600 [[items]]
2606 [[items]]
2601 section = "verify"
2607 section = "verify"
2602 name = "skipflags"
2608 name = "skipflags"
2603 default = 0
2609 default = 0
2604
2610
2605 [[items]]
2611 [[items]]
2606 section = "web"
2612 section = "web"
2607 name = "accesslog"
2613 name = "accesslog"
2608 default = "-"
2614 default = "-"
2609
2615
2610 [[items]]
2616 [[items]]
2611 section = "web"
2617 section = "web"
2612 name = "address"
2618 name = "address"
2613 default = ""
2619 default = ""
2614
2620
2615 [[items]]
2621 [[items]]
2616 section = "web"
2622 section = "web"
2617 name = "allow-archive"
2623 name = "allow-archive"
2618 default-type = "list_type"
2624 default-type = "list_type"
2619 alias = [["web", "allow_archive"]]
2625 alias = [["web", "allow_archive"]]
2620
2626
2621 [[items]]
2627 [[items]]
2622 section = "web"
2628 section = "web"
2623 name = "allow-pull"
2629 name = "allow-pull"
2624 default = true
2630 default = true
2625 alias = [["web", "allowpull"]]
2631 alias = [["web", "allowpull"]]
2626
2632
2627 [[items]]
2633 [[items]]
2628 section = "web"
2634 section = "web"
2629 name = "allow-push"
2635 name = "allow-push"
2630 default-type = "list_type"
2636 default-type = "list_type"
2631 alias = [["web", "allow_push"]]
2637 alias = [["web", "allow_push"]]
2632
2638
2633 [[items]]
2639 [[items]]
2634 section = "web"
2640 section = "web"
2635 name = "allow_read"
2641 name = "allow_read"
2636 default-type = "list_type"
2642 default-type = "list_type"
2637
2643
2638 [[items]]
2644 [[items]]
2639 section = "web"
2645 section = "web"
2640 name = "allowbz2"
2646 name = "allowbz2"
2641 default = false
2647 default = false
2642
2648
2643 [[items]]
2649 [[items]]
2644 section = "web"
2650 section = "web"
2645 name = "allowgz"
2651 name = "allowgz"
2646 default = false
2652 default = false
2647
2653
2648 [[items]]
2654 [[items]]
2649 section = "web"
2655 section = "web"
2650 name = "allowzip"
2656 name = "allowzip"
2651 default = false
2657 default = false
2652
2658
2653 [[items]]
2659 [[items]]
2654 section = "web"
2660 section = "web"
2655 name = "archivesubrepos"
2661 name = "archivesubrepos"
2656 default = false
2662 default = false
2657
2663
2658 [[items]]
2664 [[items]]
2659 section = "web"
2665 section = "web"
2660 name = "baseurl"
2666 name = "baseurl"
2661
2667
2662 [[items]]
2668 [[items]]
2663 section = "web"
2669 section = "web"
2664 name = "cacerts"
2670 name = "cacerts"
2665
2671
2666 [[items]]
2672 [[items]]
2667 section = "web"
2673 section = "web"
2668 name = "cache"
2674 name = "cache"
2669 default = true
2675 default = true
2670
2676
2671 [[items]]
2677 [[items]]
2672 section = "web"
2678 section = "web"
2673 name = "certificate"
2679 name = "certificate"
2674
2680
2675 [[items]]
2681 [[items]]
2676 section = "web"
2682 section = "web"
2677 name = "collapse"
2683 name = "collapse"
2678 default = false
2684 default = false
2679
2685
2680 [[items]]
2686 [[items]]
2681 section = "web"
2687 section = "web"
2682 name = "comparisoncontext"
2688 name = "comparisoncontext"
2683 default = 5
2689 default = 5
2684
2690
2685 [[items]]
2691 [[items]]
2686 section = "web"
2692 section = "web"
2687 name = "contact"
2693 name = "contact"
2688
2694
2689 [[items]]
2695 [[items]]
2690 section = "web"
2696 section = "web"
2691 name = "csp"
2697 name = "csp"
2692
2698
2693 [[items]]
2699 [[items]]
2694 section = "web"
2700 section = "web"
2695 name = "deny_push"
2701 name = "deny_push"
2696 default-type = "list_type"
2702 default-type = "list_type"
2697
2703
2698 [[items]]
2704 [[items]]
2699 section = "web"
2705 section = "web"
2700 name = "deny_read"
2706 name = "deny_read"
2701 default-type = "list_type"
2707 default-type = "list_type"
2702
2708
2703 [[items]]
2709 [[items]]
2704 section = "web"
2710 section = "web"
2705 name = "descend"
2711 name = "descend"
2706 default = true
2712 default = true
2707
2713
2708 [[items]]
2714 [[items]]
2709 section = "web"
2715 section = "web"
2710 name = "description"
2716 name = "description"
2711 default = ""
2717 default = ""
2712
2718
2713 [[items]]
2719 [[items]]
2714 section = "web"
2720 section = "web"
2715 name = "encoding"
2721 name = "encoding"
2716 default-type = "lazy_module"
2722 default-type = "lazy_module"
2717 default = "encoding.encoding"
2723 default = "encoding.encoding"
2718
2724
2719 [[items]]
2725 [[items]]
2720 section = "web"
2726 section = "web"
2721 name = "errorlog"
2727 name = "errorlog"
2722 default = "-"
2728 default = "-"
2723
2729
2724 [[items]]
2730 [[items]]
2725 section = "web"
2731 section = "web"
2726 name = "guessmime"
2732 name = "guessmime"
2727 default = false
2733 default = false
2728
2734
2729 [[items]]
2735 [[items]]
2730 section = "web"
2736 section = "web"
2731 name = "hidden"
2737 name = "hidden"
2732 default = false
2738 default = false
2733
2739
2734 [[items]]
2740 [[items]]
2735 section = "web"
2741 section = "web"
2736 name = "ipv6"
2742 name = "ipv6"
2737 default = false
2743 default = false
2738
2744
2739 [[items]]
2745 [[items]]
2740 section = "web"
2746 section = "web"
2741 name = "labels"
2747 name = "labels"
2742 default-type = "list_type"
2748 default-type = "list_type"
2743
2749
2744 [[items]]
2750 [[items]]
2745 section = "web"
2751 section = "web"
2746 name = "logoimg"
2752 name = "logoimg"
2747 default = "hglogo.png"
2753 default = "hglogo.png"
2748
2754
2749 [[items]]
2755 [[items]]
2750 section = "web"
2756 section = "web"
2751 name = "logourl"
2757 name = "logourl"
2752 default = "https://mercurial-scm.org/"
2758 default = "https://mercurial-scm.org/"
2753
2759
2754 [[items]]
2760 [[items]]
2755 section = "web"
2761 section = "web"
2756 name = "maxchanges"
2762 name = "maxchanges"
2757 default = 10
2763 default = 10
2758
2764
2759 [[items]]
2765 [[items]]
2760 section = "web"
2766 section = "web"
2761 name = "maxfiles"
2767 name = "maxfiles"
2762 default = 10
2768 default = 10
2763
2769
2764 [[items]]
2770 [[items]]
2765 section = "web"
2771 section = "web"
2766 name = "maxshortchanges"
2772 name = "maxshortchanges"
2767 default = 60
2773 default = 60
2768
2774
2769 [[items]]
2775 [[items]]
2770 section = "web"
2776 section = "web"
2771 name = "motd"
2777 name = "motd"
2772 default = ""
2778 default = ""
2773
2779
2774 [[items]]
2780 [[items]]
2775 section = "web"
2781 section = "web"
2776 name = "name"
2782 name = "name"
2777 default-type = "dynamic"
2783 default-type = "dynamic"
2778
2784
2779 [[items]]
2785 [[items]]
2780 section = "web"
2786 section = "web"
2781 name = "port"
2787 name = "port"
2782 default = 8000
2788 default = 8000
2783
2789
2784 [[items]]
2790 [[items]]
2785 section = "web"
2791 section = "web"
2786 name = "prefix"
2792 name = "prefix"
2787 default = ""
2793 default = ""
2788
2794
2789 [[items]]
2795 [[items]]
2790 section = "web"
2796 section = "web"
2791 name = "push_ssl"
2797 name = "push_ssl"
2792 default = true
2798 default = true
2793
2799
2794 [[items]]
2800 [[items]]
2795 section = "web"
2801 section = "web"
2796 name = "refreshinterval"
2802 name = "refreshinterval"
2797 default = 20
2803 default = 20
2798
2804
2799 [[items]]
2805 [[items]]
2800 section = "web"
2806 section = "web"
2801 name = "server-header"
2807 name = "server-header"
2802
2808
2803 [[items]]
2809 [[items]]
2804 section = "web"
2810 section = "web"
2805 name = "static"
2811 name = "static"
2806
2812
2807 [[items]]
2813 [[items]]
2808 section = "web"
2814 section = "web"
2809 name = "staticurl"
2815 name = "staticurl"
2810
2816
2811 [[items]]
2817 [[items]]
2812 section = "web"
2818 section = "web"
2813 name = "stripes"
2819 name = "stripes"
2814 default = 1
2820 default = 1
2815
2821
2816 [[items]]
2822 [[items]]
2817 section = "web"
2823 section = "web"
2818 name = "style"
2824 name = "style"
2819 default = "paper"
2825 default = "paper"
2820
2826
2821 [[items]]
2827 [[items]]
2822 section = "web"
2828 section = "web"
2823 name = "templates"
2829 name = "templates"
2824
2830
2825 [[items]]
2831 [[items]]
2826 section = "web"
2832 section = "web"
2827 name = "view"
2833 name = "view"
2828 default = "served"
2834 default = "served"
2829 experimental = true
2835 experimental = true
2830
2836
2831 [[items]]
2837 [[items]]
2832 section = "worker"
2838 section = "worker"
2833 name = "backgroundclose"
2839 name = "backgroundclose"
2834 default-type = "dynamic"
2840 default-type = "dynamic"
2835
2841
2836 [[items]]
2842 [[items]]
2837 section = "worker"
2843 section = "worker"
2838 name = "backgroundclosemaxqueue"
2844 name = "backgroundclosemaxqueue"
2839 # Windows defaults to a limit of 512 open files. A buffer of 128
2845 # Windows defaults to a limit of 512 open files. A buffer of 128
2840 # should give us enough headway.
2846 # should give us enough headway.
2841 default = 384
2847 default = 384
2842
2848
2843 [[items]]
2849 [[items]]
2844 section = "worker"
2850 section = "worker"
2845 name = "backgroundcloseminfilecount"
2851 name = "backgroundcloseminfilecount"
2846 default = 2048
2852 default = 2048
2847
2853
2848 [[items]]
2854 [[items]]
2849 section = "worker"
2855 section = "worker"
2850 name = "backgroundclosethreadcount"
2856 name = "backgroundclosethreadcount"
2851 default = 4
2857 default = 4
2852
2858
2853 [[items]]
2859 [[items]]
2854 section = "worker"
2860 section = "worker"
2855 name = "enabled"
2861 name = "enabled"
2856 default = true
2862 default = true
2857
2863
2858 [[items]]
2864 [[items]]
2859 section = "worker"
2865 section = "worker"
2860 name = "numcpus"
2866 name = "numcpus"
2861
2867
2862 # Templates and template applications
2868 # Templates and template applications
2863
2869
2864 [[template-applications]]
2870 [[template-applications]]
2865 template = "diff-options"
2871 template = "diff-options"
2866 section = "annotate"
2872 section = "annotate"
2867
2873
2868 [[template-applications]]
2874 [[template-applications]]
2869 template = "diff-options"
2875 template = "diff-options"
2870 section = "commands"
2876 section = "commands"
2871 prefix = "commit.interactive"
2877 prefix = "commit.interactive"
2872
2878
2873 [[template-applications]]
2879 [[template-applications]]
2874 template = "diff-options"
2880 template = "diff-options"
2875 section = "commands"
2881 section = "commands"
2876 prefix = "revert.interactive"
2882 prefix = "revert.interactive"
2877
2883
2878 [[template-applications]]
2884 [[template-applications]]
2879 template = "diff-options"
2885 template = "diff-options"
2880 section = "diff"
2886 section = "diff"
2881
2887
2882 [templates]
2888 [templates]
2883 [[templates.diff-options]]
2889 [[templates.diff-options]]
2884 suffix = "nodates"
2890 suffix = "nodates"
2885 default = false
2891 default = false
2886
2892
2887 [[templates.diff-options]]
2893 [[templates.diff-options]]
2888 suffix = "showfunc"
2894 suffix = "showfunc"
2889 default = false
2895 default = false
2890
2896
2891 [[templates.diff-options]]
2897 [[templates.diff-options]]
2892 suffix = "unified"
2898 suffix = "unified"
2893
2899
2894 [[templates.diff-options]]
2900 [[templates.diff-options]]
2895 suffix = "git"
2901 suffix = "git"
2896 default = false
2902 default = false
2897
2903
2898 [[templates.diff-options]]
2904 [[templates.diff-options]]
2899 suffix = "ignorews"
2905 suffix = "ignorews"
2900 default = false
2906 default = false
2901
2907
2902 [[templates.diff-options]]
2908 [[templates.diff-options]]
2903 suffix = "ignorewsamount"
2909 suffix = "ignorewsamount"
2904 default = false
2910 default = false
2905
2911
2906 [[templates.diff-options]]
2912 [[templates.diff-options]]
2907 suffix = "ignoreblanklines"
2913 suffix = "ignoreblanklines"
2908 default = false
2914 default = false
2909
2915
2910 [[templates.diff-options]]
2916 [[templates.diff-options]]
2911 suffix = "ignorewseol"
2917 suffix = "ignorewseol"
2912 default = false
2918 default = false
2913
2919
2914 [[templates.diff-options]]
2920 [[templates.diff-options]]
2915 suffix = "nobinary"
2921 suffix = "nobinary"
2916 default = false
2922 default = false
2917
2923
2918 [[templates.diff-options]]
2924 [[templates.diff-options]]
2919 suffix = "noprefix"
2925 suffix = "noprefix"
2920 default = false
2926 default = false
2921
2927
2922 [[templates.diff-options]]
2928 [[templates.diff-options]]
2923 suffix = "word-diff"
2929 suffix = "word-diff"
2924 default = false
2930 default = false
2925
2931
2926 # In-core extensions
2932 # In-core extensions
2927
2933
2928 [[items]]
2934 [[items]]
2929 section = "blackbox"
2935 section = "blackbox"
2930 name = "debug.to-stderr"
2936 name = "debug.to-stderr"
2931 default = false
2937 default = false
2932 in_core_extension = "blackbox"
2938 in_core_extension = "blackbox"
2933
2939
2934 [[items]]
2940 [[items]]
2935 section = "blackbox"
2941 section = "blackbox"
2936 name = "dirty"
2942 name = "dirty"
2937 default = false
2943 default = false
2938 in_core_extension = "blackbox"
2944 in_core_extension = "blackbox"
2939
2945
2940 [[items]]
2946 [[items]]
2941 section = "blackbox"
2947 section = "blackbox"
2942 name = "maxsize"
2948 name = "maxsize"
2943 default = "1 MB"
2949 default = "1 MB"
2944 in_core_extension = "blackbox"
2950 in_core_extension = "blackbox"
2945
2951
2946 [[items]]
2952 [[items]]
2947 section = "blackbox"
2953 section = "blackbox"
2948 name = "logsource"
2954 name = "logsource"
2949 default = false
2955 default = false
2950 in_core_extension = "blackbox"
2956 in_core_extension = "blackbox"
2951
2957
2952 [[items]]
2958 [[items]]
2953 section = "blackbox"
2959 section = "blackbox"
2954 name = "maxfiles"
2960 name = "maxfiles"
2955 default = 7
2961 default = 7
2956 in_core_extension = "blackbox"
2962 in_core_extension = "blackbox"
2957
2963
2958 [[items]]
2964 [[items]]
2959 section = "blackbox"
2965 section = "blackbox"
2960 name = "track"
2966 name = "track"
2961 default-type = "lambda"
2967 default-type = "lambda"
2962 default = ["*"]
2968 default = ["*"]
2963 in_core_extension = "blackbox"
2969 in_core_extension = "blackbox"
2964
2970
2965 [[items]]
2971 [[items]]
2966 section = "blackbox"
2972 section = "blackbox"
2967 name = "ignore"
2973 name = "ignore"
2968 default-type = "lambda"
2974 default-type = "lambda"
2969 default = ["chgserver", "cmdserver", "extension"]
2975 default = ["chgserver", "cmdserver", "extension"]
2970 in_core_extension = "blackbox"
2976 in_core_extension = "blackbox"
2971
2977
2972 [[items]]
2978 [[items]]
2973 section = "blackbox"
2979 section = "blackbox"
2974 name = "date-format"
2980 name = "date-format"
2975 default = ""
2981 default = ""
2976 in_core_extension = "blackbox"
2982 in_core_extension = "blackbox"
@@ -1,3480 +1,3486
1 The Mercurial system uses a set of configuration files to control
1 The Mercurial system uses a set of configuration files to control
2 aspects of its behavior.
2 aspects of its behavior.
3
3
4 Troubleshooting
4 Troubleshooting
5 ===============
5 ===============
6
6
7 If you're having problems with your configuration,
7 If you're having problems with your configuration,
8 :hg:`config --source` can help you understand what is introducing
8 :hg:`config --source` can help you understand what is introducing
9 a setting into your environment.
9 a setting into your environment.
10
10
11 See :hg:`help config.syntax` and :hg:`help config.files`
11 See :hg:`help config.syntax` and :hg:`help config.files`
12 for information about how and where to override things.
12 for information about how and where to override things.
13
13
14 Structure
14 Structure
15 =========
15 =========
16
16
17 The configuration files use a simple ini-file format. A configuration
17 The configuration files use a simple ini-file format. A configuration
18 file consists of sections, led by a ``[section]`` header and followed
18 file consists of sections, led by a ``[section]`` header and followed
19 by ``name = value`` entries::
19 by ``name = value`` entries::
20
20
21 [ui]
21 [ui]
22 username = Firstname Lastname <firstname.lastname@example.net>
22 username = Firstname Lastname <firstname.lastname@example.net>
23 verbose = True
23 verbose = True
24
24
25 The above entries will be referred to as ``ui.username`` and
25 The above entries will be referred to as ``ui.username`` and
26 ``ui.verbose``, respectively. See :hg:`help config.syntax`.
26 ``ui.verbose``, respectively. See :hg:`help config.syntax`.
27
27
28 Files
28 Files
29 =====
29 =====
30
30
31 Mercurial reads configuration data from several files, if they exist.
31 Mercurial reads configuration data from several files, if they exist.
32 These files do not exist by default and you will have to create the
32 These files do not exist by default and you will have to create the
33 appropriate configuration files yourself:
33 appropriate configuration files yourself:
34
34
35 Local configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
35 Local configuration is put into the per-repository ``<repo>/.hg/hgrc`` file.
36
36
37 Global configuration like the username setting is typically put into:
37 Global configuration like the username setting is typically put into:
38
38
39 .. container:: windows
39 .. container:: windows
40
40
41 - ``%USERPROFILE%\mercurial.ini`` (on Windows)
41 - ``%USERPROFILE%\mercurial.ini`` (on Windows)
42
42
43 .. container:: unix.plan9
43 .. container:: unix.plan9
44
44
45 - ``$HOME/.hgrc`` (on Unix, Plan9)
45 - ``$HOME/.hgrc`` (on Unix, Plan9)
46
46
47 The names of these files depend on the system on which Mercurial is
47 The names of these files depend on the system on which Mercurial is
48 installed. ``*.rc`` files from a single directory are read in
48 installed. ``*.rc`` files from a single directory are read in
49 alphabetical order, later ones overriding earlier ones. Where multiple
49 alphabetical order, later ones overriding earlier ones. Where multiple
50 paths are given below, settings from earlier paths override later
50 paths are given below, settings from earlier paths override later
51 ones.
51 ones.
52
52
53 .. container:: verbose.unix
53 .. container:: verbose.unix
54
54
55 On Unix, the following files are consulted:
55 On Unix, the following files are consulted:
56
56
57 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
57 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
58 - ``<repo>/.hg/hgrc`` (per-repository)
58 - ``<repo>/.hg/hgrc`` (per-repository)
59 - ``$HOME/.hgrc`` (per-user)
59 - ``$HOME/.hgrc`` (per-user)
60 - ``${XDG_CONFIG_HOME:-$HOME/.config}/hg/hgrc`` (per-user)
60 - ``${XDG_CONFIG_HOME:-$HOME/.config}/hg/hgrc`` (per-user)
61 - ``<install-root>/etc/mercurial/hgrc`` (per-installation)
61 - ``<install-root>/etc/mercurial/hgrc`` (per-installation)
62 - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)
62 - ``<install-root>/etc/mercurial/hgrc.d/*.rc`` (per-installation)
63 - ``/etc/mercurial/hgrc`` (per-system)
63 - ``/etc/mercurial/hgrc`` (per-system)
64 - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)
64 - ``/etc/mercurial/hgrc.d/*.rc`` (per-system)
65 - ``<internal>/*.rc`` (defaults)
65 - ``<internal>/*.rc`` (defaults)
66
66
67 .. container:: verbose.windows
67 .. container:: verbose.windows
68
68
69 On Windows, the following files are consulted:
69 On Windows, the following files are consulted:
70
70
71 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
71 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
72 - ``<repo>/.hg/hgrc`` (per-repository)
72 - ``<repo>/.hg/hgrc`` (per-repository)
73 - ``%USERPROFILE%\.hgrc`` (per-user)
73 - ``%USERPROFILE%\.hgrc`` (per-user)
74 - ``%USERPROFILE%\Mercurial.ini`` (per-user)
74 - ``%USERPROFILE%\Mercurial.ini`` (per-user)
75 - ``%HOME%\.hgrc`` (per-user)
75 - ``%HOME%\.hgrc`` (per-user)
76 - ``%HOME%\Mercurial.ini`` (per-user)
76 - ``%HOME%\Mercurial.ini`` (per-user)
77 - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-system)
77 - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-system)
78 - ``<install-dir>\hgrc.d\*.rc`` (per-installation)
78 - ``<install-dir>\hgrc.d\*.rc`` (per-installation)
79 - ``<install-dir>\Mercurial.ini`` (per-installation)
79 - ``<install-dir>\Mercurial.ini`` (per-installation)
80 - ``%PROGRAMDATA%\Mercurial\hgrc`` (per-system)
80 - ``%PROGRAMDATA%\Mercurial\hgrc`` (per-system)
81 - ``%PROGRAMDATA%\Mercurial\Mercurial.ini`` (per-system)
81 - ``%PROGRAMDATA%\Mercurial\Mercurial.ini`` (per-system)
82 - ``%PROGRAMDATA%\Mercurial\hgrc.d\*.rc`` (per-system)
82 - ``%PROGRAMDATA%\Mercurial\hgrc.d\*.rc`` (per-system)
83 - ``<internal>/*.rc`` (defaults)
83 - ``<internal>/*.rc`` (defaults)
84
84
85 .. note::
85 .. note::
86
86
87 The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial``
87 The registry key ``HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial``
88 is used when running 32-bit Python on 64-bit Windows.
88 is used when running 32-bit Python on 64-bit Windows.
89
89
90 .. container:: verbose.plan9
90 .. container:: verbose.plan9
91
91
92 On Plan9, the following files are consulted:
92 On Plan9, the following files are consulted:
93
93
94 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
94 - ``<repo>/.hg/hgrc-not-shared`` (per-repository)
95 - ``<repo>/.hg/hgrc`` (per-repository)
95 - ``<repo>/.hg/hgrc`` (per-repository)
96 - ``$home/lib/hgrc`` (per-user)
96 - ``$home/lib/hgrc`` (per-user)
97 - ``<install-root>/lib/mercurial/hgrc`` (per-installation)
97 - ``<install-root>/lib/mercurial/hgrc`` (per-installation)
98 - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)
98 - ``<install-root>/lib/mercurial/hgrc.d/*.rc`` (per-installation)
99 - ``/lib/mercurial/hgrc`` (per-system)
99 - ``/lib/mercurial/hgrc`` (per-system)
100 - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)
100 - ``/lib/mercurial/hgrc.d/*.rc`` (per-system)
101 - ``<internal>/*.rc`` (defaults)
101 - ``<internal>/*.rc`` (defaults)
102
102
103 Per-repository configuration options only apply in a
103 Per-repository configuration options only apply in a
104 particular repository. This file is not version-controlled, and
104 particular repository. This file is not version-controlled, and
105 will not get transferred during a "clone" operation. Options in
105 will not get transferred during a "clone" operation. Options in
106 this file override options in all other configuration files.
106 this file override options in all other configuration files.
107
107
108 .. container:: unix.plan9
108 .. container:: unix.plan9
109
109
110 On Plan 9 and Unix, most of this file will be ignored if it doesn't
110 On Plan 9 and Unix, most of this file will be ignored if it doesn't
111 belong to a trusted user or to a trusted group. See
111 belong to a trusted user or to a trusted group. See
112 :hg:`help config.trusted` for more details.
112 :hg:`help config.trusted` for more details.
113
113
114 Per-user configuration file(s) are for the user running Mercurial. Options
114 Per-user configuration file(s) are for the user running Mercurial. Options
115 in these files apply to all Mercurial commands executed by this user in any
115 in these files apply to all Mercurial commands executed by this user in any
116 directory. Options in these files override per-system and per-installation
116 directory. Options in these files override per-system and per-installation
117 options.
117 options.
118
118
119 Per-installation configuration files are searched for in the
119 Per-installation configuration files are searched for in the
120 directory where Mercurial is installed. ``<install-root>`` is the
120 directory where Mercurial is installed. ``<install-root>`` is the
121 parent directory of the **hg** executable (or symlink) being run.
121 parent directory of the **hg** executable (or symlink) being run.
122
122
123 .. container:: unix.plan9
123 .. container:: unix.plan9
124
124
125 For example, if installed in ``/shared/tools/bin/hg``, Mercurial
125 For example, if installed in ``/shared/tools/bin/hg``, Mercurial
126 will look in ``/shared/tools/etc/mercurial/hgrc``. Options in these
126 will look in ``/shared/tools/etc/mercurial/hgrc``. Options in these
127 files apply to all Mercurial commands executed by any user in any
127 files apply to all Mercurial commands executed by any user in any
128 directory.
128 directory.
129
129
130 Per-installation configuration files are for the system on
130 Per-installation configuration files are for the system on
131 which Mercurial is running. Options in these files apply to all
131 which Mercurial is running. Options in these files apply to all
132 Mercurial commands executed by any user in any directory. Registry
132 Mercurial commands executed by any user in any directory. Registry
133 keys contain PATH-like strings, every part of which must reference
133 keys contain PATH-like strings, every part of which must reference
134 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
134 a ``Mercurial.ini`` file or be a directory where ``*.rc`` files will
135 be read. Mercurial checks each of these locations in the specified
135 be read. Mercurial checks each of these locations in the specified
136 order until one or more configuration files are detected.
136 order until one or more configuration files are detected.
137
137
138 Per-system configuration files are for the system on which Mercurial
138 Per-system configuration files are for the system on which Mercurial
139 is running. Options in these files apply to all Mercurial commands
139 is running. Options in these files apply to all Mercurial commands
140 executed by any user in any directory. Options in these files
140 executed by any user in any directory. Options in these files
141 override per-installation options.
141 override per-installation options.
142
142
143 Mercurial comes with some default configuration. The default configuration
143 Mercurial comes with some default configuration. The default configuration
144 files are installed with Mercurial and will be overwritten on upgrades. Default
144 files are installed with Mercurial and will be overwritten on upgrades. Default
145 configuration files should never be edited by users or administrators but can
145 configuration files should never be edited by users or administrators but can
146 be overridden in other configuration files. So far the directory only contains
146 be overridden in other configuration files. So far the directory only contains
147 merge tool configuration but packagers can also put other default configuration
147 merge tool configuration but packagers can also put other default configuration
148 there.
148 there.
149
149
150 On versions 5.7 and later, if share-safe functionality is enabled,
150 On versions 5.7 and later, if share-safe functionality is enabled,
151 shares will read config file of share source too.
151 shares will read config file of share source too.
152 `<share-source/.hg/hgrc>` is read before reading `<repo/.hg/hgrc>`.
152 `<share-source/.hg/hgrc>` is read before reading `<repo/.hg/hgrc>`.
153
153
154 For configs which should not be shared, `<repo/.hg/hgrc-not-shared>`
154 For configs which should not be shared, `<repo/.hg/hgrc-not-shared>`
155 should be used.
155 should be used.
156
156
157 Syntax
157 Syntax
158 ======
158 ======
159
159
160 A configuration file consists of sections, led by a ``[section]`` header
160 A configuration file consists of sections, led by a ``[section]`` header
161 and followed by ``name = value`` entries (sometimes called
161 and followed by ``name = value`` entries (sometimes called
162 ``configuration keys``)::
162 ``configuration keys``)::
163
163
164 [spam]
164 [spam]
165 eggs=ham
165 eggs=ham
166 green=
166 green=
167 eggs
167 eggs
168
168
169 Each line contains one entry. If the lines that follow are indented,
169 Each line contains one entry. If the lines that follow are indented,
170 they are treated as continuations of that entry. Leading whitespace is
170 they are treated as continuations of that entry. Leading whitespace is
171 removed from values. Empty lines are skipped. Lines beginning with
171 removed from values. Empty lines are skipped. Lines beginning with
172 ``#`` or ``;`` are ignored and may be used to provide comments.
172 ``#`` or ``;`` are ignored and may be used to provide comments.
173
173
174 Configuration keys can be set multiple times, in which case Mercurial
174 Configuration keys can be set multiple times, in which case Mercurial
175 will use the value that was configured last. As an example::
175 will use the value that was configured last. As an example::
176
176
177 [spam]
177 [spam]
178 eggs=large
178 eggs=large
179 ham=serrano
179 ham=serrano
180 eggs=small
180 eggs=small
181
181
182 This would set the configuration key named ``eggs`` to ``small``.
182 This would set the configuration key named ``eggs`` to ``small``.
183
183
184 It is also possible to define a section multiple times. A section can
184 It is also possible to define a section multiple times. A section can
185 be redefined on the same and/or on different configuration files. For
185 be redefined on the same and/or on different configuration files. For
186 example::
186 example::
187
187
188 [foo]
188 [foo]
189 eggs=large
189 eggs=large
190 ham=serrano
190 ham=serrano
191 eggs=small
191 eggs=small
192
192
193 [bar]
193 [bar]
194 eggs=ham
194 eggs=ham
195 green=
195 green=
196 eggs
196 eggs
197
197
198 [foo]
198 [foo]
199 ham=prosciutto
199 ham=prosciutto
200 eggs=medium
200 eggs=medium
201 bread=toasted
201 bread=toasted
202
202
203 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
203 This would set the ``eggs``, ``ham``, and ``bread`` configuration keys
204 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
204 of the ``foo`` section to ``medium``, ``prosciutto``, and ``toasted``,
205 respectively. As you can see there only thing that matters is the last
205 respectively. As you can see there only thing that matters is the last
206 value that was set for each of the configuration keys.
206 value that was set for each of the configuration keys.
207
207
208 If a configuration key is set multiple times in different
208 If a configuration key is set multiple times in different
209 configuration files the final value will depend on the order in which
209 configuration files the final value will depend on the order in which
210 the different configuration files are read, with settings from earlier
210 the different configuration files are read, with settings from earlier
211 paths overriding later ones as described on the ``Files`` section
211 paths overriding later ones as described on the ``Files`` section
212 above.
212 above.
213
213
214 A line of the form ``%include file`` will include ``file`` into the
214 A line of the form ``%include file`` will include ``file`` into the
215 current configuration file. The inclusion is recursive, which means
215 current configuration file. The inclusion is recursive, which means
216 that included files can include other files. Filenames are relative to
216 that included files can include other files. Filenames are relative to
217 the configuration file in which the ``%include`` directive is found.
217 the configuration file in which the ``%include`` directive is found.
218 Environment variables and ``~user`` constructs are expanded in
218 Environment variables and ``~user`` constructs are expanded in
219 ``file``. This lets you do something like::
219 ``file``. This lets you do something like::
220
220
221 %include ~/.hgrc.d/$HOST.rc
221 %include ~/.hgrc.d/$HOST.rc
222
222
223 to include a different configuration file on each computer you use.
223 to include a different configuration file on each computer you use.
224
224
225 A line with ``%unset name`` will remove ``name`` from the current
225 A line with ``%unset name`` will remove ``name`` from the current
226 section, if it has been set previously.
226 section, if it has been set previously.
227
227
228 The values are either free-form text strings, lists of text strings,
228 The values are either free-form text strings, lists of text strings,
229 or Boolean values. Boolean values can be set to true using any of "1",
229 or Boolean values. Boolean values can be set to true using any of "1",
230 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
230 "yes", "true", or "on" and to false using "0", "no", "false", or "off"
231 (all case insensitive).
231 (all case insensitive).
232
232
233 List values are separated by whitespace or comma, except when values are
233 List values are separated by whitespace or comma, except when values are
234 placed in double quotation marks::
234 placed in double quotation marks::
235
235
236 allow_read = "John Doe, PhD", brian, betty
236 allow_read = "John Doe, PhD", brian, betty
237
237
238 Quotation marks can be escaped by prefixing them with a backslash. Only
238 Quotation marks can be escaped by prefixing them with a backslash. Only
239 quotation marks at the beginning of a word is counted as a quotation
239 quotation marks at the beginning of a word is counted as a quotation
240 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
240 (e.g., ``foo"bar baz`` is the list of ``foo"bar`` and ``baz``).
241
241
242 Sections
242 Sections
243 ========
243 ========
244
244
245 This section describes the different sections that may appear in a
245 This section describes the different sections that may appear in a
246 Mercurial configuration file, the purpose of each section, its possible
246 Mercurial configuration file, the purpose of each section, its possible
247 keys, and their possible values.
247 keys, and their possible values.
248
248
249 ``alias``
249 ``alias``
250 ---------
250 ---------
251
251
252 Defines command aliases.
252 Defines command aliases.
253
253
254 Aliases allow you to define your own commands in terms of other
254 Aliases allow you to define your own commands in terms of other
255 commands (or aliases), optionally including arguments. Positional
255 commands (or aliases), optionally including arguments. Positional
256 arguments in the form of ``$1``, ``$2``, etc. in the alias definition
256 arguments in the form of ``$1``, ``$2``, etc. in the alias definition
257 are expanded by Mercurial before execution. Positional arguments not
257 are expanded by Mercurial before execution. Positional arguments not
258 already used by ``$N`` in the definition are put at the end of the
258 already used by ``$N`` in the definition are put at the end of the
259 command to be executed.
259 command to be executed.
260
260
261 Alias definitions consist of lines of the form::
261 Alias definitions consist of lines of the form::
262
262
263 <alias> = <command> [<argument>]...
263 <alias> = <command> [<argument>]...
264
264
265 For example, this definition::
265 For example, this definition::
266
266
267 latest = log --limit 5
267 latest = log --limit 5
268
268
269 creates a new command ``latest`` that shows only the five most recent
269 creates a new command ``latest`` that shows only the five most recent
270 changesets. You can define subsequent aliases using earlier ones::
270 changesets. You can define subsequent aliases using earlier ones::
271
271
272 stable5 = latest -b stable
272 stable5 = latest -b stable
273
273
274 .. note::
274 .. note::
275
275
276 It is possible to create aliases with the same names as
276 It is possible to create aliases with the same names as
277 existing commands, which will then override the original
277 existing commands, which will then override the original
278 definitions. This is almost always a bad idea!
278 definitions. This is almost always a bad idea!
279
279
280 An alias can start with an exclamation point (``!``) to make it a
280 An alias can start with an exclamation point (``!``) to make it a
281 shell alias. A shell alias is executed with the shell and will let you
281 shell alias. A shell alias is executed with the shell and will let you
282 run arbitrary commands. As an example, ::
282 run arbitrary commands. As an example, ::
283
283
284 echo = !echo $@
284 echo = !echo $@
285
285
286 will let you do ``hg echo foo`` to have ``foo`` printed in your
286 will let you do ``hg echo foo`` to have ``foo`` printed in your
287 terminal. A better example might be::
287 terminal. A better example might be::
288
288
289 purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm -f
289 purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm -f
290
290
291 which will make ``hg purge`` delete all unknown files in the
291 which will make ``hg purge`` delete all unknown files in the
292 repository in the same manner as the purge extension.
292 repository in the same manner as the purge extension.
293
293
294 Positional arguments like ``$1``, ``$2``, etc. in the alias definition
294 Positional arguments like ``$1``, ``$2``, etc. in the alias definition
295 expand to the command arguments. Unmatched arguments are
295 expand to the command arguments. Unmatched arguments are
296 removed. ``$0`` expands to the alias name and ``$@`` expands to all
296 removed. ``$0`` expands to the alias name and ``$@`` expands to all
297 arguments separated by a space. ``"$@"`` (with quotes) expands to all
297 arguments separated by a space. ``"$@"`` (with quotes) expands to all
298 arguments quoted individually and separated by a space. These expansions
298 arguments quoted individually and separated by a space. These expansions
299 happen before the command is passed to the shell.
299 happen before the command is passed to the shell.
300
300
301 Shell aliases are executed in an environment where ``$HG`` expands to
301 Shell aliases are executed in an environment where ``$HG`` expands to
302 the path of the Mercurial that was used to execute the alias. This is
302 the path of the Mercurial that was used to execute the alias. This is
303 useful when you want to call further Mercurial commands in a shell
303 useful when you want to call further Mercurial commands in a shell
304 alias, as was done above for the purge alias. In addition,
304 alias, as was done above for the purge alias. In addition,
305 ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
305 ``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
306 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
306 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
307
307
308 .. note::
308 .. note::
309
309
310 Some global configuration options such as ``-R`` are
310 Some global configuration options such as ``-R`` are
311 processed before shell aliases and will thus not be passed to
311 processed before shell aliases and will thus not be passed to
312 aliases.
312 aliases.
313
313
314
314
315 ``annotate``
315 ``annotate``
316 ------------
316 ------------
317
317
318 Settings used when displaying file annotations. All values are
318 Settings used when displaying file annotations. All values are
319 Booleans and default to False. See :hg:`help config.diff` for
319 Booleans and default to False. See :hg:`help config.diff` for
320 related options for the diff command.
320 related options for the diff command.
321
321
322 ``ignorews``
322 ``ignorews``
323 Ignore white space when comparing lines.
323 Ignore white space when comparing lines.
324
324
325 ``ignorewseol``
325 ``ignorewseol``
326 Ignore white space at the end of a line when comparing lines.
326 Ignore white space at the end of a line when comparing lines.
327
327
328 ``ignorewsamount``
328 ``ignorewsamount``
329 Ignore changes in the amount of white space.
329 Ignore changes in the amount of white space.
330
330
331 ``ignoreblanklines``
331 ``ignoreblanklines``
332 Ignore changes whose lines are all blank.
332 Ignore changes whose lines are all blank.
333
333
334
334
335 ``auth``
335 ``auth``
336 --------
336 --------
337
337
338 Authentication credentials and other authentication-like configuration
338 Authentication credentials and other authentication-like configuration
339 for HTTP connections. This section allows you to store usernames and
339 for HTTP connections. This section allows you to store usernames and
340 passwords for use when logging *into* HTTP servers. See
340 passwords for use when logging *into* HTTP servers. See
341 :hg:`help config.web` if you want to configure *who* can login to
341 :hg:`help config.web` if you want to configure *who* can login to
342 your HTTP server.
342 your HTTP server.
343
343
344 The following options apply to all hosts.
344 The following options apply to all hosts.
345
345
346 ``cookiefile``
346 ``cookiefile``
347 Path to a file containing HTTP cookie lines. Cookies matching a
347 Path to a file containing HTTP cookie lines. Cookies matching a
348 host will be sent automatically.
348 host will be sent automatically.
349
349
350 The file format uses the Mozilla cookies.txt format, which defines cookies
350 The file format uses the Mozilla cookies.txt format, which defines cookies
351 on their own lines. Each line contains 7 fields delimited by the tab
351 on their own lines. Each line contains 7 fields delimited by the tab
352 character (domain, is_domain_cookie, path, is_secure, expires, name,
352 character (domain, is_domain_cookie, path, is_secure, expires, name,
353 value). For more info, do an Internet search for "Netscape cookies.txt
353 value). For more info, do an Internet search for "Netscape cookies.txt
354 format."
354 format."
355
355
356 Note: the cookies parser does not handle port numbers on domains. You
356 Note: the cookies parser does not handle port numbers on domains. You
357 will need to remove ports from the domain for the cookie to be recognized.
357 will need to remove ports from the domain for the cookie to be recognized.
358 This could result in a cookie being disclosed to an unwanted server.
358 This could result in a cookie being disclosed to an unwanted server.
359
359
360 The cookies file is read-only.
360 The cookies file is read-only.
361
361
362 Other options in this section are grouped by name and have the following
362 Other options in this section are grouped by name and have the following
363 format::
363 format::
364
364
365 <name>.<argument> = <value>
365 <name>.<argument> = <value>
366
366
367 where ``<name>`` is used to group arguments into authentication
367 where ``<name>`` is used to group arguments into authentication
368 entries. Example::
368 entries. Example::
369
369
370 foo.prefix = hg.intevation.de/mercurial
370 foo.prefix = hg.intevation.de/mercurial
371 foo.username = foo
371 foo.username = foo
372 foo.password = bar
372 foo.password = bar
373 foo.schemes = http https
373 foo.schemes = http https
374
374
375 bar.prefix = secure.example.org
375 bar.prefix = secure.example.org
376 bar.key = path/to/file.key
376 bar.key = path/to/file.key
377 bar.cert = path/to/file.cert
377 bar.cert = path/to/file.cert
378 bar.schemes = https
378 bar.schemes = https
379
379
380 Supported arguments:
380 Supported arguments:
381
381
382 ``prefix``
382 ``prefix``
383 Either ``*`` or a URI prefix with or without the scheme part.
383 Either ``*`` or a URI prefix with or without the scheme part.
384 The authentication entry with the longest matching prefix is used
384 The authentication entry with the longest matching prefix is used
385 (where ``*`` matches everything and counts as a match of length
385 (where ``*`` matches everything and counts as a match of length
386 1). If the prefix doesn't include a scheme, the match is performed
386 1). If the prefix doesn't include a scheme, the match is performed
387 against the URI with its scheme stripped as well, and the schemes
387 against the URI with its scheme stripped as well, and the schemes
388 argument, q.v., is then subsequently consulted.
388 argument, q.v., is then subsequently consulted.
389
389
390 ``username``
390 ``username``
391 Optional. Username to authenticate with. If not given, and the
391 Optional. Username to authenticate with. If not given, and the
392 remote site requires basic or digest authentication, the user will
392 remote site requires basic or digest authentication, the user will
393 be prompted for it. Environment variables are expanded in the
393 be prompted for it. Environment variables are expanded in the
394 username letting you do ``foo.username = $USER``. If the URI
394 username letting you do ``foo.username = $USER``. If the URI
395 includes a username, only ``[auth]`` entries with a matching
395 includes a username, only ``[auth]`` entries with a matching
396 username or without a username will be considered.
396 username or without a username will be considered.
397
397
398 ``password``
398 ``password``
399 Optional. Password to authenticate with. If not given, and the
399 Optional. Password to authenticate with. If not given, and the
400 remote site requires basic or digest authentication, the user
400 remote site requires basic or digest authentication, the user
401 will be prompted for it.
401 will be prompted for it.
402
402
403 ``key``
403 ``key``
404 Optional. PEM encoded client certificate key file. Environment
404 Optional. PEM encoded client certificate key file. Environment
405 variables are expanded in the filename.
405 variables are expanded in the filename.
406
406
407 ``cert``
407 ``cert``
408 Optional. PEM encoded client certificate chain file. Environment
408 Optional. PEM encoded client certificate chain file. Environment
409 variables are expanded in the filename.
409 variables are expanded in the filename.
410
410
411 ``schemes``
411 ``schemes``
412 Optional. Space separated list of URI schemes to use this
412 Optional. Space separated list of URI schemes to use this
413 authentication entry with. Only used if the prefix doesn't include
413 authentication entry with. Only used if the prefix doesn't include
414 a scheme. Supported schemes are http and https. They will match
414 a scheme. Supported schemes are http and https. They will match
415 static-http and static-https respectively, as well.
415 static-http and static-https respectively, as well.
416 (default: https)
416 (default: https)
417
417
418 If no suitable authentication entry is found, the user is prompted
418 If no suitable authentication entry is found, the user is prompted
419 for credentials as usual if required by the remote.
419 for credentials as usual if required by the remote.
420
420
421 ``censor``
422 ----------
423
424 ``policy``
425 :config-doc:`censor.policy`
426
421 ``cmdserver``
427 ``cmdserver``
422 -------------
428 -------------
423
429
424 Controls command server settings. (ADVANCED)
430 Controls command server settings. (ADVANCED)
425
431
426 ``message-encodings``
432 ``message-encodings``
427 List of encodings for the ``m`` (message) channel. The first encoding
433 List of encodings for the ``m`` (message) channel. The first encoding
428 supported by the server will be selected and advertised in the hello
434 supported by the server will be selected and advertised in the hello
429 message. This is useful only when ``ui.message-output`` is set to
435 message. This is useful only when ``ui.message-output`` is set to
430 ``channel``. Supported encodings are ``cbor``.
436 ``channel``. Supported encodings are ``cbor``.
431
437
432 ``shutdown-on-interrupt``
438 ``shutdown-on-interrupt``
433 If set to false, the server's main loop will continue running after
439 If set to false, the server's main loop will continue running after
434 SIGINT received. ``runcommand`` requests can still be interrupted by
440 SIGINT received. ``runcommand`` requests can still be interrupted by
435 SIGINT. Close the write end of the pipe to shut down the server
441 SIGINT. Close the write end of the pipe to shut down the server
436 process gracefully.
442 process gracefully.
437 (default: True)
443 (default: True)
438
444
439 ``color``
445 ``color``
440 ---------
446 ---------
441
447
442 Configure the Mercurial color mode. For details about how to define your custom
448 Configure the Mercurial color mode. For details about how to define your custom
443 effect and style see :hg:`help color`.
449 effect and style see :hg:`help color`.
444
450
445 ``mode``
451 ``mode``
446 String: control the method used to output color. One of ``auto``, ``ansi``,
452 String: control the method used to output color. One of ``auto``, ``ansi``,
447 ``win32``, ``terminfo`` or ``debug``. In auto mode, Mercurial will
453 ``win32``, ``terminfo`` or ``debug``. In auto mode, Mercurial will
448 use ANSI mode by default (or win32 mode prior to Windows 10) if it detects a
454 use ANSI mode by default (or win32 mode prior to Windows 10) if it detects a
449 terminal. Any invalid value will disable color.
455 terminal. Any invalid value will disable color.
450
456
451 ``pagermode``
457 ``pagermode``
452 String: optional override of ``color.mode`` used with pager.
458 String: optional override of ``color.mode`` used with pager.
453
459
454 On some systems, terminfo mode may cause problems when using
460 On some systems, terminfo mode may cause problems when using
455 color with ``less -R`` as a pager program. less with the -R option
461 color with ``less -R`` as a pager program. less with the -R option
456 will only display ECMA-48 color codes, and terminfo mode may sometimes
462 will only display ECMA-48 color codes, and terminfo mode may sometimes
457 emit codes that less doesn't understand. You can work around this by
463 emit codes that less doesn't understand. You can work around this by
458 either using ansi mode (or auto mode), or by using less -r (which will
464 either using ansi mode (or auto mode), or by using less -r (which will
459 pass through all terminal control codes, not just color control
465 pass through all terminal control codes, not just color control
460 codes).
466 codes).
461
467
462 On some systems (such as MSYS in Windows), the terminal may support
468 On some systems (such as MSYS in Windows), the terminal may support
463 a different color mode than the pager program.
469 a different color mode than the pager program.
464
470
465 ``commands``
471 ``commands``
466 ------------
472 ------------
467
473
468 ``commit.post-status``
474 ``commit.post-status``
469 Show status of files in the working directory after successful commit.
475 Show status of files in the working directory after successful commit.
470 (default: False)
476 (default: False)
471
477
472 ``merge.require-rev``
478 ``merge.require-rev``
473 Require that the revision to merge the current commit with be specified on
479 Require that the revision to merge the current commit with be specified on
474 the command line. If this is enabled and a revision is not specified, the
480 the command line. If this is enabled and a revision is not specified, the
475 command aborts.
481 command aborts.
476 (default: False)
482 (default: False)
477
483
478 ``push.require-revs``
484 ``push.require-revs``
479 Require revisions to push be specified using one or more mechanisms such as
485 Require revisions to push be specified using one or more mechanisms such as
480 specifying them positionally on the command line, using ``-r``, ``-b``,
486 specifying them positionally on the command line, using ``-r``, ``-b``,
481 and/or ``-B`` on the command line, or using ``paths.<path>:pushrev`` in the
487 and/or ``-B`` on the command line, or using ``paths.<path>:pushrev`` in the
482 configuration. If this is enabled and revisions are not specified, the
488 configuration. If this is enabled and revisions are not specified, the
483 command aborts.
489 command aborts.
484 (default: False)
490 (default: False)
485
491
486 ``resolve.confirm``
492 ``resolve.confirm``
487 Confirm before performing action if no filename is passed.
493 Confirm before performing action if no filename is passed.
488 (default: False)
494 (default: False)
489
495
490 ``resolve.explicit-re-merge``
496 ``resolve.explicit-re-merge``
491 Require uses of ``hg resolve`` to specify which action it should perform,
497 Require uses of ``hg resolve`` to specify which action it should perform,
492 instead of re-merging files by default.
498 instead of re-merging files by default.
493 (default: False)
499 (default: False)
494
500
495 ``resolve.mark-check``
501 ``resolve.mark-check``
496 Determines what level of checking :hg:`resolve --mark` will perform before
502 Determines what level of checking :hg:`resolve --mark` will perform before
497 marking files as resolved. Valid values are ``none`, ``warn``, and
503 marking files as resolved. Valid values are ``none`, ``warn``, and
498 ``abort``. ``warn`` will output a warning listing the file(s) that still
504 ``abort``. ``warn`` will output a warning listing the file(s) that still
499 have conflict markers in them, but will still mark everything resolved.
505 have conflict markers in them, but will still mark everything resolved.
500 ``abort`` will output the same warning but will not mark things as resolved.
506 ``abort`` will output the same warning but will not mark things as resolved.
501 If --all is passed and this is set to ``abort``, only a warning will be
507 If --all is passed and this is set to ``abort``, only a warning will be
502 shown (an error will not be raised).
508 shown (an error will not be raised).
503 (default: ``none``)
509 (default: ``none``)
504
510
505 ``status.relative``
511 ``status.relative``
506 Make paths in :hg:`status` output relative to the current directory.
512 Make paths in :hg:`status` output relative to the current directory.
507 (default: False)
513 (default: False)
508
514
509 ``status.terse``
515 ``status.terse``
510 Default value for the --terse flag, which condenses status output.
516 Default value for the --terse flag, which condenses status output.
511 (default: empty)
517 (default: empty)
512
518
513 ``update.check``
519 ``update.check``
514 Determines what level of checking :hg:`update` will perform before moving
520 Determines what level of checking :hg:`update` will perform before moving
515 to a destination revision. Valid values are ``abort``, ``none``,
521 to a destination revision. Valid values are ``abort``, ``none``,
516 ``linear``, and ``noconflict``.
522 ``linear``, and ``noconflict``.
517
523
518 - ``abort`` always fails if the working directory has uncommitted changes.
524 - ``abort`` always fails if the working directory has uncommitted changes.
519
525
520 - ``none`` performs no checking, and may result in a merge with uncommitted changes.
526 - ``none`` performs no checking, and may result in a merge with uncommitted changes.
521
527
522 - ``linear`` allows any update as long as it follows a straight line in the
528 - ``linear`` allows any update as long as it follows a straight line in the
523 revision history, and may trigger a merge with uncommitted changes.
529 revision history, and may trigger a merge with uncommitted changes.
524
530
525 - ``noconflict`` will allow any update which would not trigger a merge with
531 - ``noconflict`` will allow any update which would not trigger a merge with
526 uncommitted changes, if any are present.
532 uncommitted changes, if any are present.
527
533
528 (default: ``linear``)
534 (default: ``linear``)
529
535
530 ``update.requiredest``
536 ``update.requiredest``
531 Require that the user pass a destination when running :hg:`update`.
537 Require that the user pass a destination when running :hg:`update`.
532 For example, :hg:`update .::` will be allowed, but a plain :hg:`update`
538 For example, :hg:`update .::` will be allowed, but a plain :hg:`update`
533 will be disallowed.
539 will be disallowed.
534 (default: False)
540 (default: False)
535
541
536 ``committemplate``
542 ``committemplate``
537 ------------------
543 ------------------
538
544
539 ``changeset``
545 ``changeset``
540 String: configuration in this section is used as the template to
546 String: configuration in this section is used as the template to
541 customize the text shown in the editor when committing.
547 customize the text shown in the editor when committing.
542
548
543 In addition to pre-defined template keywords, commit log specific one
549 In addition to pre-defined template keywords, commit log specific one
544 below can be used for customization:
550 below can be used for customization:
545
551
546 ``extramsg``
552 ``extramsg``
547 String: Extra message (typically 'Leave message empty to abort
553 String: Extra message (typically 'Leave message empty to abort
548 commit.'). This may be changed by some commands or extensions.
554 commit.'). This may be changed by some commands or extensions.
549
555
550 For example, the template configuration below shows as same text as
556 For example, the template configuration below shows as same text as
551 one shown by default::
557 one shown by default::
552
558
553 [committemplate]
559 [committemplate]
554 changeset = {desc}\n\n
560 changeset = {desc}\n\n
555 HG: Enter commit message. Lines beginning with 'HG:' are removed.
561 HG: Enter commit message. Lines beginning with 'HG:' are removed.
556 HG: {extramsg}
562 HG: {extramsg}
557 HG: --
563 HG: --
558 HG: user: {author}\n{ifeq(p2rev, "-1", "",
564 HG: user: {author}\n{ifeq(p2rev, "-1", "",
559 "HG: branch merge\n")
565 "HG: branch merge\n")
560 }HG: branch '{branch}'\n{if(activebookmark,
566 }HG: branch '{branch}'\n{if(activebookmark,
561 "HG: bookmark '{activebookmark}'\n") }{subrepos %
567 "HG: bookmark '{activebookmark}'\n") }{subrepos %
562 "HG: subrepo {subrepo}\n" }{file_adds %
568 "HG: subrepo {subrepo}\n" }{file_adds %
563 "HG: added {file}\n" }{file_mods %
569 "HG: added {file}\n" }{file_mods %
564 "HG: changed {file}\n" }{file_dels %
570 "HG: changed {file}\n" }{file_dels %
565 "HG: removed {file}\n" }{if(files, "",
571 "HG: removed {file}\n" }{if(files, "",
566 "HG: no files changed\n")}
572 "HG: no files changed\n")}
567
573
568 ``diff()``
574 ``diff()``
569 String: show the diff (see :hg:`help templates` for detail)
575 String: show the diff (see :hg:`help templates` for detail)
570
576
571 Sometimes it is helpful to show the diff of the changeset in the editor without
577 Sometimes it is helpful to show the diff of the changeset in the editor without
572 having to prefix 'HG: ' to each line so that highlighting works correctly. For
578 having to prefix 'HG: ' to each line so that highlighting works correctly. For
573 this, Mercurial provides a special string which will ignore everything below
579 this, Mercurial provides a special string which will ignore everything below
574 it::
580 it::
575
581
576 HG: ------------------------ >8 ------------------------
582 HG: ------------------------ >8 ------------------------
577
583
578 For example, the template configuration below will show the diff below the
584 For example, the template configuration below will show the diff below the
579 extra message::
585 extra message::
580
586
581 [committemplate]
587 [committemplate]
582 changeset = {desc}\n\n
588 changeset = {desc}\n\n
583 HG: Enter commit message. Lines beginning with 'HG:' are removed.
589 HG: Enter commit message. Lines beginning with 'HG:' are removed.
584 HG: {extramsg}
590 HG: {extramsg}
585 HG: ------------------------ >8 ------------------------
591 HG: ------------------------ >8 ------------------------
586 HG: Do not touch the line above.
592 HG: Do not touch the line above.
587 HG: Everything below will be removed.
593 HG: Everything below will be removed.
588 {diff()}
594 {diff()}
589
595
590 .. note::
596 .. note::
591
597
592 For some problematic encodings (see :hg:`help win32mbcs` for
598 For some problematic encodings (see :hg:`help win32mbcs` for
593 detail), this customization should be configured carefully, to
599 detail), this customization should be configured carefully, to
594 avoid showing broken characters.
600 avoid showing broken characters.
595
601
596 For example, if a multibyte character ending with backslash (0x5c) is
602 For example, if a multibyte character ending with backslash (0x5c) is
597 followed by the ASCII character 'n' in the customized template,
603 followed by the ASCII character 'n' in the customized template,
598 the sequence of backslash and 'n' is treated as line-feed unexpectedly
604 the sequence of backslash and 'n' is treated as line-feed unexpectedly
599 (and the multibyte character is broken, too).
605 (and the multibyte character is broken, too).
600
606
601 Customized template is used for commands below (``--edit`` may be
607 Customized template is used for commands below (``--edit`` may be
602 required):
608 required):
603
609
604 - :hg:`backout`
610 - :hg:`backout`
605 - :hg:`commit`
611 - :hg:`commit`
606 - :hg:`fetch` (for merge commit only)
612 - :hg:`fetch` (for merge commit only)
607 - :hg:`graft`
613 - :hg:`graft`
608 - :hg:`histedit`
614 - :hg:`histedit`
609 - :hg:`import`
615 - :hg:`import`
610 - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`
616 - :hg:`qfold`, :hg:`qnew` and :hg:`qrefresh`
611 - :hg:`rebase`
617 - :hg:`rebase`
612 - :hg:`shelve`
618 - :hg:`shelve`
613 - :hg:`sign`
619 - :hg:`sign`
614 - :hg:`tag`
620 - :hg:`tag`
615 - :hg:`transplant`
621 - :hg:`transplant`
616
622
617 Configuring items below instead of ``changeset`` allows showing
623 Configuring items below instead of ``changeset`` allows showing
618 customized message only for specific actions, or showing different
624 customized message only for specific actions, or showing different
619 messages for each action.
625 messages for each action.
620
626
621 - ``changeset.backout`` for :hg:`backout`
627 - ``changeset.backout`` for :hg:`backout`
622 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
628 - ``changeset.commit.amend.merge`` for :hg:`commit --amend` on merges
623 - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other
629 - ``changeset.commit.amend.normal`` for :hg:`commit --amend` on other
624 - ``changeset.commit.normal.merge`` for :hg:`commit` on merges
630 - ``changeset.commit.normal.merge`` for :hg:`commit` on merges
625 - ``changeset.commit.normal.normal`` for :hg:`commit` on other
631 - ``changeset.commit.normal.normal`` for :hg:`commit` on other
626 - ``changeset.fetch`` for :hg:`fetch` (impling merge commit)
632 - ``changeset.fetch`` for :hg:`fetch` (impling merge commit)
627 - ``changeset.gpg.sign`` for :hg:`sign`
633 - ``changeset.gpg.sign`` for :hg:`sign`
628 - ``changeset.graft`` for :hg:`graft`
634 - ``changeset.graft`` for :hg:`graft`
629 - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`
635 - ``changeset.histedit.edit`` for ``edit`` of :hg:`histedit`
630 - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`
636 - ``changeset.histedit.fold`` for ``fold`` of :hg:`histedit`
631 - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`
637 - ``changeset.histedit.mess`` for ``mess`` of :hg:`histedit`
632 - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`
638 - ``changeset.histedit.pick`` for ``pick`` of :hg:`histedit`
633 - ``changeset.import.bypass`` for :hg:`import --bypass`
639 - ``changeset.import.bypass`` for :hg:`import --bypass`
634 - ``changeset.import.normal.merge`` for :hg:`import` on merges
640 - ``changeset.import.normal.merge`` for :hg:`import` on merges
635 - ``changeset.import.normal.normal`` for :hg:`import` on other
641 - ``changeset.import.normal.normal`` for :hg:`import` on other
636 - ``changeset.mq.qnew`` for :hg:`qnew`
642 - ``changeset.mq.qnew`` for :hg:`qnew`
637 - ``changeset.mq.qfold`` for :hg:`qfold`
643 - ``changeset.mq.qfold`` for :hg:`qfold`
638 - ``changeset.mq.qrefresh`` for :hg:`qrefresh`
644 - ``changeset.mq.qrefresh`` for :hg:`qrefresh`
639 - ``changeset.rebase.collapse`` for :hg:`rebase --collapse`
645 - ``changeset.rebase.collapse`` for :hg:`rebase --collapse`
640 - ``changeset.rebase.merge`` for :hg:`rebase` on merges
646 - ``changeset.rebase.merge`` for :hg:`rebase` on merges
641 - ``changeset.rebase.normal`` for :hg:`rebase` on other
647 - ``changeset.rebase.normal`` for :hg:`rebase` on other
642 - ``changeset.shelve.shelve`` for :hg:`shelve`
648 - ``changeset.shelve.shelve`` for :hg:`shelve`
643 - ``changeset.tag.add`` for :hg:`tag` without ``--remove``
649 - ``changeset.tag.add`` for :hg:`tag` without ``--remove``
644 - ``changeset.tag.remove`` for :hg:`tag --remove`
650 - ``changeset.tag.remove`` for :hg:`tag --remove`
645 - ``changeset.transplant.merge`` for :hg:`transplant` on merges
651 - ``changeset.transplant.merge`` for :hg:`transplant` on merges
646 - ``changeset.transplant.normal`` for :hg:`transplant` on other
652 - ``changeset.transplant.normal`` for :hg:`transplant` on other
647
653
648 These dot-separated lists of names are treated as hierarchical ones.
654 These dot-separated lists of names are treated as hierarchical ones.
649 For example, ``changeset.tag.remove`` customizes the commit message
655 For example, ``changeset.tag.remove`` customizes the commit message
650 only for :hg:`tag --remove`, but ``changeset.tag`` customizes the
656 only for :hg:`tag --remove`, but ``changeset.tag`` customizes the
651 commit message for :hg:`tag` regardless of ``--remove`` option.
657 commit message for :hg:`tag` regardless of ``--remove`` option.
652
658
653 When the external editor is invoked for a commit, the corresponding
659 When the external editor is invoked for a commit, the corresponding
654 dot-separated list of names without the ``changeset.`` prefix
660 dot-separated list of names without the ``changeset.`` prefix
655 (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment
661 (e.g. ``commit.normal.normal``) is in the ``HGEDITFORM`` environment
656 variable.
662 variable.
657
663
658 In this section, items other than ``changeset`` can be referred from
664 In this section, items other than ``changeset`` can be referred from
659 others. For example, the configuration to list committed files up
665 others. For example, the configuration to list committed files up
660 below can be referred as ``{listupfiles}``::
666 below can be referred as ``{listupfiles}``::
661
667
662 [committemplate]
668 [committemplate]
663 listupfiles = {file_adds %
669 listupfiles = {file_adds %
664 "HG: added {file}\n" }{file_mods %
670 "HG: added {file}\n" }{file_mods %
665 "HG: changed {file}\n" }{file_dels %
671 "HG: changed {file}\n" }{file_dels %
666 "HG: removed {file}\n" }{if(files, "",
672 "HG: removed {file}\n" }{if(files, "",
667 "HG: no files changed\n")}
673 "HG: no files changed\n")}
668
674
669 ``decode/encode``
675 ``decode/encode``
670 -----------------
676 -----------------
671
677
672 Filters for transforming files on checkout/checkin. This would
678 Filters for transforming files on checkout/checkin. This would
673 typically be used for newline processing or other
679 typically be used for newline processing or other
674 localization/canonicalization of files.
680 localization/canonicalization of files.
675
681
676 Filters consist of a filter pattern followed by a filter command.
682 Filters consist of a filter pattern followed by a filter command.
677 Filter patterns are globs by default, rooted at the repository root.
683 Filter patterns are globs by default, rooted at the repository root.
678 For example, to match any file ending in ``.txt`` in the root
684 For example, to match any file ending in ``.txt`` in the root
679 directory only, use the pattern ``*.txt``. To match any file ending
685 directory only, use the pattern ``*.txt``. To match any file ending
680 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
686 in ``.c`` anywhere in the repository, use the pattern ``**.c``.
681 For each file only the first matching filter applies.
687 For each file only the first matching filter applies.
682
688
683 The filter command can start with a specifier, either ``pipe:`` or
689 The filter command can start with a specifier, either ``pipe:`` or
684 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
690 ``tempfile:``. If no specifier is given, ``pipe:`` is used by default.
685
691
686 A ``pipe:`` command must accept data on stdin and return the transformed
692 A ``pipe:`` command must accept data on stdin and return the transformed
687 data on stdout.
693 data on stdout.
688
694
689 Pipe example::
695 Pipe example::
690
696
691 [encode]
697 [encode]
692 # uncompress gzip files on checkin to improve delta compression
698 # uncompress gzip files on checkin to improve delta compression
693 # note: not necessarily a good idea, just an example
699 # note: not necessarily a good idea, just an example
694 *.gz = pipe: gunzip
700 *.gz = pipe: gunzip
695
701
696 [decode]
702 [decode]
697 # recompress gzip files when writing them to the working dir (we
703 # recompress gzip files when writing them to the working dir (we
698 # can safely omit "pipe:", because it's the default)
704 # can safely omit "pipe:", because it's the default)
699 *.gz = gzip
705 *.gz = gzip
700
706
701 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
707 A ``tempfile:`` command is a template. The string ``INFILE`` is replaced
702 with the name of a temporary file that contains the data to be
708 with the name of a temporary file that contains the data to be
703 filtered by the command. The string ``OUTFILE`` is replaced with the name
709 filtered by the command. The string ``OUTFILE`` is replaced with the name
704 of an empty temporary file, where the filtered data must be written by
710 of an empty temporary file, where the filtered data must be written by
705 the command.
711 the command.
706
712
707 .. container:: windows
713 .. container:: windows
708
714
709 .. note::
715 .. note::
710
716
711 The tempfile mechanism is recommended for Windows systems,
717 The tempfile mechanism is recommended for Windows systems,
712 where the standard shell I/O redirection operators often have
718 where the standard shell I/O redirection operators often have
713 strange effects and may corrupt the contents of your files.
719 strange effects and may corrupt the contents of your files.
714
720
715 This filter mechanism is used internally by the ``eol`` extension to
721 This filter mechanism is used internally by the ``eol`` extension to
716 translate line ending characters between Windows (CRLF) and Unix (LF)
722 translate line ending characters between Windows (CRLF) and Unix (LF)
717 format. We suggest you use the ``eol`` extension for convenience.
723 format. We suggest you use the ``eol`` extension for convenience.
718
724
719
725
720 ``defaults``
726 ``defaults``
721 ------------
727 ------------
722
728
723 (defaults are deprecated. Don't use them. Use aliases instead.)
729 (defaults are deprecated. Don't use them. Use aliases instead.)
724
730
725 Use the ``[defaults]`` section to define command defaults, i.e. the
731 Use the ``[defaults]`` section to define command defaults, i.e. the
726 default options/arguments to pass to the specified commands.
732 default options/arguments to pass to the specified commands.
727
733
728 The following example makes :hg:`log` run in verbose mode, and
734 The following example makes :hg:`log` run in verbose mode, and
729 :hg:`status` show only the modified files, by default::
735 :hg:`status` show only the modified files, by default::
730
736
731 [defaults]
737 [defaults]
732 log = -v
738 log = -v
733 status = -m
739 status = -m
734
740
735 The actual commands, instead of their aliases, must be used when
741 The actual commands, instead of their aliases, must be used when
736 defining command defaults. The command defaults will also be applied
742 defining command defaults. The command defaults will also be applied
737 to the aliases of the commands defined.
743 to the aliases of the commands defined.
738
744
739
745
740 ``diff``
746 ``diff``
741 --------
747 --------
742
748
743 Settings used when displaying diffs. Everything except for ``unified``
749 Settings used when displaying diffs. Everything except for ``unified``
744 is a Boolean and defaults to False. See :hg:`help config.annotate`
750 is a Boolean and defaults to False. See :hg:`help config.annotate`
745 for related options for the annotate command.
751 for related options for the annotate command.
746
752
747 ``git``
753 ``git``
748 Use git extended diff format.
754 Use git extended diff format.
749
755
750 ``nobinary``
756 ``nobinary``
751 Omit git binary patches.
757 Omit git binary patches.
752
758
753 ``nodates``
759 ``nodates``
754 Don't include dates in diff headers.
760 Don't include dates in diff headers.
755
761
756 ``noprefix``
762 ``noprefix``
757 Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
763 Omit 'a/' and 'b/' prefixes from filenames. Ignored in plain mode.
758
764
759 ``showfunc``
765 ``showfunc``
760 Show which function each change is in.
766 Show which function each change is in.
761
767
762 ``ignorews``
768 ``ignorews``
763 Ignore white space when comparing lines.
769 Ignore white space when comparing lines.
764
770
765 ``ignorewsamount``
771 ``ignorewsamount``
766 Ignore changes in the amount of white space.
772 Ignore changes in the amount of white space.
767
773
768 ``ignoreblanklines``
774 ``ignoreblanklines``
769 Ignore changes whose lines are all blank.
775 Ignore changes whose lines are all blank.
770
776
771 ``unified``
777 ``unified``
772 Number of lines of context to show.
778 Number of lines of context to show.
773
779
774 ``word-diff``
780 ``word-diff``
775 Highlight changed words.
781 Highlight changed words.
776
782
777 ``email``
783 ``email``
778 ---------
784 ---------
779
785
780 Settings for extensions that send email messages.
786 Settings for extensions that send email messages.
781
787
782 ``from``
788 ``from``
783 Optional. Email address to use in "From" header and SMTP envelope
789 Optional. Email address to use in "From" header and SMTP envelope
784 of outgoing messages.
790 of outgoing messages.
785
791
786 ``to``
792 ``to``
787 Optional. Comma-separated list of recipients' email addresses.
793 Optional. Comma-separated list of recipients' email addresses.
788
794
789 ``cc``
795 ``cc``
790 Optional. Comma-separated list of carbon copy recipients'
796 Optional. Comma-separated list of carbon copy recipients'
791 email addresses.
797 email addresses.
792
798
793 ``bcc``
799 ``bcc``
794 Optional. Comma-separated list of blind carbon copy recipients'
800 Optional. Comma-separated list of blind carbon copy recipients'
795 email addresses.
801 email addresses.
796
802
797 ``method``
803 ``method``
798 Optional. Method to use to send email messages. If value is ``smtp``
804 Optional. Method to use to send email messages. If value is ``smtp``
799 (default), use SMTP (see the ``[smtp]`` section for configuration).
805 (default), use SMTP (see the ``[smtp]`` section for configuration).
800 Otherwise, use as name of program to run that acts like sendmail
806 Otherwise, use as name of program to run that acts like sendmail
801 (takes ``-f`` option for sender, list of recipients on command line,
807 (takes ``-f`` option for sender, list of recipients on command line,
802 message on stdin). Normally, setting this to ``sendmail`` or
808 message on stdin). Normally, setting this to ``sendmail`` or
803 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
809 ``/usr/sbin/sendmail`` is enough to use sendmail to send messages.
804
810
805 ``charsets``
811 ``charsets``
806 Optional. Comma-separated list of character sets considered
812 Optional. Comma-separated list of character sets considered
807 convenient for recipients. Addresses, headers, and parts not
813 convenient for recipients. Addresses, headers, and parts not
808 containing patches of outgoing messages will be encoded in the
814 containing patches of outgoing messages will be encoded in the
809 first character set to which conversion from local encoding
815 first character set to which conversion from local encoding
810 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
816 (``$HGENCODING``, ``ui.fallbackencoding``) succeeds. If correct
811 conversion fails, the text in question is sent as is.
817 conversion fails, the text in question is sent as is.
812 (default: '')
818 (default: '')
813
819
814 Order of outgoing email character sets:
820 Order of outgoing email character sets:
815
821
816 1. ``us-ascii``: always first, regardless of settings
822 1. ``us-ascii``: always first, regardless of settings
817 2. ``email.charsets``: in order given by user
823 2. ``email.charsets``: in order given by user
818 3. ``ui.fallbackencoding``: if not in email.charsets
824 3. ``ui.fallbackencoding``: if not in email.charsets
819 4. ``$HGENCODING``: if not in email.charsets
825 4. ``$HGENCODING``: if not in email.charsets
820 5. ``utf-8``: always last, regardless of settings
826 5. ``utf-8``: always last, regardless of settings
821
827
822 Email example::
828 Email example::
823
829
824 [email]
830 [email]
825 from = Joseph User <joe.user@example.com>
831 from = Joseph User <joe.user@example.com>
826 method = /usr/sbin/sendmail
832 method = /usr/sbin/sendmail
827 # charsets for western Europeans
833 # charsets for western Europeans
828 # us-ascii, utf-8 omitted, as they are tried first and last
834 # us-ascii, utf-8 omitted, as they are tried first and last
829 charsets = iso-8859-1, iso-8859-15, windows-1252
835 charsets = iso-8859-1, iso-8859-15, windows-1252
830
836
831
837
832 ``extensions``
838 ``extensions``
833 --------------
839 --------------
834
840
835 Mercurial has an extension mechanism for adding new features. To
841 Mercurial has an extension mechanism for adding new features. To
836 enable an extension, create an entry for it in this section.
842 enable an extension, create an entry for it in this section.
837
843
838 If you know that the extension is already in Python's search path,
844 If you know that the extension is already in Python's search path,
839 you can give the name of the module, followed by ``=``, with nothing
845 you can give the name of the module, followed by ``=``, with nothing
840 after the ``=``.
846 after the ``=``.
841
847
842 Otherwise, give a name that you choose, followed by ``=``, followed by
848 Otherwise, give a name that you choose, followed by ``=``, followed by
843 the path to the ``.py`` file (including the file name extension) that
849 the path to the ``.py`` file (including the file name extension) that
844 defines the extension.
850 defines the extension.
845
851
846 To explicitly disable an extension that is enabled in an hgrc of
852 To explicitly disable an extension that is enabled in an hgrc of
847 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
853 broader scope, prepend its path with ``!``, as in ``foo = !/ext/path``
848 or ``foo = !`` when path is not supplied.
854 or ``foo = !`` when path is not supplied.
849
855
850 Example for ``~/.hgrc``::
856 Example for ``~/.hgrc``::
851
857
852 [extensions]
858 [extensions]
853 # (the churn extension will get loaded from Mercurial's path)
859 # (the churn extension will get loaded from Mercurial's path)
854 churn =
860 churn =
855 # (this extension will get loaded from the file specified)
861 # (this extension will get loaded from the file specified)
856 myfeature = ~/.hgext/myfeature.py
862 myfeature = ~/.hgext/myfeature.py
857
863
858 If an extension fails to load, a warning will be issued, and Mercurial will
864 If an extension fails to load, a warning will be issued, and Mercurial will
859 proceed. To enforce that an extension must be loaded, one can set the `required`
865 proceed. To enforce that an extension must be loaded, one can set the `required`
860 suboption in the config::
866 suboption in the config::
861
867
862 [extensions]
868 [extensions]
863 myfeature = ~/.hgext/myfeature.py
869 myfeature = ~/.hgext/myfeature.py
864 myfeature:required = yes
870 myfeature:required = yes
865
871
866 To debug extension loading issue, one can add `--traceback` to their mercurial
872 To debug extension loading issue, one can add `--traceback` to their mercurial
867 invocation.
873 invocation.
868
874
869 A default setting can we set using the special `*` extension key::
875 A default setting can we set using the special `*` extension key::
870
876
871 [extensions]
877 [extensions]
872 *:required = yes
878 *:required = yes
873 myfeature = ~/.hgext/myfeature.py
879 myfeature = ~/.hgext/myfeature.py
874 rebase=
880 rebase=
875
881
876
882
877 ``format``
883 ``format``
878 ----------
884 ----------
879
885
880 Configuration that controls the repository format. Newer format options are more
886 Configuration that controls the repository format. Newer format options are more
881 powerful, but incompatible with some older versions of Mercurial. Format options
887 powerful, but incompatible with some older versions of Mercurial. Format options
882 are considered at repository initialization only. You need to make a new clone
888 are considered at repository initialization only. You need to make a new clone
883 for config changes to be taken into account.
889 for config changes to be taken into account.
884
890
885 For more details about repository format and version compatibility, see
891 For more details about repository format and version compatibility, see
886 https://www.mercurial-scm.org/wiki/MissingRequirement
892 https://www.mercurial-scm.org/wiki/MissingRequirement
887
893
888 ``usegeneraldelta``
894 ``usegeneraldelta``
889 Enable or disable the "generaldelta" repository format which improves
895 Enable or disable the "generaldelta" repository format which improves
890 repository compression by allowing "revlog" to store deltas against
896 repository compression by allowing "revlog" to store deltas against
891 arbitrary revisions instead of the previously stored one. This provides
897 arbitrary revisions instead of the previously stored one. This provides
892 significant improvement for repositories with branches.
898 significant improvement for repositories with branches.
893
899
894 Repositories with this on-disk format require Mercurial version 1.9.
900 Repositories with this on-disk format require Mercurial version 1.9.
895
901
896 Enabled by default.
902 Enabled by default.
897
903
898 ``dotencode``
904 ``dotencode``
899 Enable or disable the "dotencode" repository format which enhances
905 Enable or disable the "dotencode" repository format which enhances
900 the "fncache" repository format (which has to be enabled to use
906 the "fncache" repository format (which has to be enabled to use
901 dotencode) to avoid issues with filenames starting with "._" on
907 dotencode) to avoid issues with filenames starting with "._" on
902 Mac OS X and spaces on Windows.
908 Mac OS X and spaces on Windows.
903
909
904 Repositories with this on-disk format require Mercurial version 1.7.
910 Repositories with this on-disk format require Mercurial version 1.7.
905
911
906 Enabled by default.
912 Enabled by default.
907
913
908 ``usefncache``
914 ``usefncache``
909 Enable or disable the "fncache" repository format which enhances
915 Enable or disable the "fncache" repository format which enhances
910 the "store" repository format (which has to be enabled to use
916 the "store" repository format (which has to be enabled to use
911 fncache) to allow longer filenames and avoids using Windows
917 fncache) to allow longer filenames and avoids using Windows
912 reserved names, e.g. "nul".
918 reserved names, e.g. "nul".
913
919
914 Repositories with this on-disk format require Mercurial version 1.1.
920 Repositories with this on-disk format require Mercurial version 1.1.
915
921
916 Enabled by default.
922 Enabled by default.
917
923
918 ``use-dirstate-v2``
924 ``use-dirstate-v2``
919 Enable or disable the experimental "dirstate-v2" feature. The dirstate
925 Enable or disable the experimental "dirstate-v2" feature. The dirstate
920 functionality is shared by all commands interacting with the working copy.
926 functionality is shared by all commands interacting with the working copy.
921 The new version is more robust, faster and stores more information.
927 The new version is more robust, faster and stores more information.
922
928
923 The performance-improving version of this feature is currently only
929 The performance-improving version of this feature is currently only
924 implemented in Rust (see :hg:`help rust`), so people not using a version of
930 implemented in Rust (see :hg:`help rust`), so people not using a version of
925 Mercurial compiled with the Rust parts might actually suffer some slowdown.
931 Mercurial compiled with the Rust parts might actually suffer some slowdown.
926 For this reason, such versions will by default refuse to access repositories
932 For this reason, such versions will by default refuse to access repositories
927 with "dirstate-v2" enabled.
933 with "dirstate-v2" enabled.
928
934
929 This behavior can be adjusted via configuration: check
935 This behavior can be adjusted via configuration: check
930 :hg:`help config.storage.dirstate-v2.slow-path` for details.
936 :hg:`help config.storage.dirstate-v2.slow-path` for details.
931
937
932 Repositories with this on-disk format require Mercurial 6.0 or above.
938 Repositories with this on-disk format require Mercurial 6.0 or above.
933
939
934 By default this format variant is disabled if the fast implementation is not
940 By default this format variant is disabled if the fast implementation is not
935 available, and enabled by default if the fast implementation is available.
941 available, and enabled by default if the fast implementation is available.
936
942
937 To accomodate installations of Mercurial without the fast implementation,
943 To accomodate installations of Mercurial without the fast implementation,
938 you can downgrade your repository. To do so run the following command:
944 you can downgrade your repository. To do so run the following command:
939
945
940 $ hg debugupgraderepo \
946 $ hg debugupgraderepo \
941 --run \
947 --run \
942 --config format.use-dirstate-v2=False \
948 --config format.use-dirstate-v2=False \
943 --config storage.dirstate-v2.slow-path=allow
949 --config storage.dirstate-v2.slow-path=allow
944
950
945 For a more comprehensive guide, see :hg:`help internals.dirstate-v2`.
951 For a more comprehensive guide, see :hg:`help internals.dirstate-v2`.
946
952
947 ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories``
953 ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories``
948 When enabled, an automatic upgrade will be triggered when a repository format
954 When enabled, an automatic upgrade will be triggered when a repository format
949 does not match its `use-dirstate-v2` config.
955 does not match its `use-dirstate-v2` config.
950
956
951 This is an advanced behavior that most users will not need. We recommend you
957 This is an advanced behavior that most users will not need. We recommend you
952 don't use this unless you are a seasoned administrator of a Mercurial install
958 don't use this unless you are a seasoned administrator of a Mercurial install
953 base.
959 base.
954
960
955 Automatic upgrade means that any process accessing the repository will
961 Automatic upgrade means that any process accessing the repository will
956 upgrade the repository format to use `dirstate-v2`. This only triggers if a
962 upgrade the repository format to use `dirstate-v2`. This only triggers if a
957 change is needed. This also applies to operations that would have been
963 change is needed. This also applies to operations that would have been
958 read-only (like hg status).
964 read-only (like hg status).
959
965
960 If the repository cannot be locked, the automatic-upgrade operation will be
966 If the repository cannot be locked, the automatic-upgrade operation will be
961 skipped. The next operation will attempt it again.
967 skipped. The next operation will attempt it again.
962
968
963 This configuration will apply for moves in any direction, either adding the
969 This configuration will apply for moves in any direction, either adding the
964 `dirstate-v2` format if `format.use-dirstate-v2=yes` or removing the
970 `dirstate-v2` format if `format.use-dirstate-v2=yes` or removing the
965 `dirstate-v2` requirement if `format.use-dirstate-v2=no`. So we recommend
971 `dirstate-v2` requirement if `format.use-dirstate-v2=no`. So we recommend
966 setting both this value and `format.use-dirstate-v2` at the same time.
972 setting both this value and `format.use-dirstate-v2` at the same time.
967
973
968 ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet``
974 ``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet``
969 Hide message when performing such automatic upgrade.
975 Hide message when performing such automatic upgrade.
970
976
971 ``use-dirstate-tracked-hint``
977 ``use-dirstate-tracked-hint``
972 Enable or disable the writing of "tracked key" file alongside the dirstate.
978 Enable or disable the writing of "tracked key" file alongside the dirstate.
973 (default to disabled)
979 (default to disabled)
974
980
975 That "tracked-hint" can help external automations to detect changes to the
981 That "tracked-hint" can help external automations to detect changes to the
976 set of tracked files. (i.e the result of `hg files` or `hg status -macd`)
982 set of tracked files. (i.e the result of `hg files` or `hg status -macd`)
977
983
978 The tracked-hint is written in a new `.hg/dirstate-tracked-hint`. That file
984 The tracked-hint is written in a new `.hg/dirstate-tracked-hint`. That file
979 contains two lines:
985 contains two lines:
980 - the first line is the file version (currently: 1),
986 - the first line is the file version (currently: 1),
981 - the second line contains the "tracked-hint".
987 - the second line contains the "tracked-hint".
982 That file is written right after the dirstate is written.
988 That file is written right after the dirstate is written.
983
989
984 The tracked-hint changes whenever the set of file tracked in the dirstate
990 The tracked-hint changes whenever the set of file tracked in the dirstate
985 changes. The general idea is:
991 changes. The general idea is:
986 - if the hint is identical, the set of tracked file SHOULD be identical,
992 - if the hint is identical, the set of tracked file SHOULD be identical,
987 - if the hint is different, the set of tracked file MIGHT be different.
993 - if the hint is different, the set of tracked file MIGHT be different.
988
994
989 The "hint is identical" case uses `SHOULD` as the dirstate and the hint file
995 The "hint is identical" case uses `SHOULD` as the dirstate and the hint file
990 are two distinct files and therefore that cannot be read or written to in an
996 are two distinct files and therefore that cannot be read or written to in an
991 atomic way. If the key is identical, nothing garantees that the dirstate is
997 atomic way. If the key is identical, nothing garantees that the dirstate is
992 not updated right after the hint file. This is considered a negligible
998 not updated right after the hint file. This is considered a negligible
993 limitation for the intended usecase. It is actually possible to prevent this
999 limitation for the intended usecase. It is actually possible to prevent this
994 race by taking the repository lock during read operations.
1000 race by taking the repository lock during read operations.
995
1001
996 They are two "ways" to use this feature:
1002 They are two "ways" to use this feature:
997
1003
998 1) monitoring changes to the `.hg/dirstate-tracked-hint`, if the file
1004 1) monitoring changes to the `.hg/dirstate-tracked-hint`, if the file
999 changes, the tracked set might have changed.
1005 changes, the tracked set might have changed.
1000
1006
1001 2) storing the value and comparing it to a later value.
1007 2) storing the value and comparing it to a later value.
1002
1008
1003
1009
1004 ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories``
1010 ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories``
1005 When enabled, an automatic upgrade will be triggered when a repository format
1011 When enabled, an automatic upgrade will be triggered when a repository format
1006 does not match its `use-dirstate-tracked-hint` config.
1012 does not match its `use-dirstate-tracked-hint` config.
1007
1013
1008 This is an advanced behavior that most users will not need. We recommend you
1014 This is an advanced behavior that most users will not need. We recommend you
1009 don't use this unless you are a seasoned administrator of a Mercurial install
1015 don't use this unless you are a seasoned administrator of a Mercurial install
1010 base.
1016 base.
1011
1017
1012 Automatic upgrade means that any process accessing the repository will
1018 Automatic upgrade means that any process accessing the repository will
1013 upgrade the repository format to use `dirstate-tracked-hint`. This only
1019 upgrade the repository format to use `dirstate-tracked-hint`. This only
1014 triggers if a change is needed. This also applies to operations that would
1020 triggers if a change is needed. This also applies to operations that would
1015 have been read-only (like hg status).
1021 have been read-only (like hg status).
1016
1022
1017 If the repository cannot be locked, the automatic-upgrade operation will be
1023 If the repository cannot be locked, the automatic-upgrade operation will be
1018 skipped. The next operation will attempt it again.
1024 skipped. The next operation will attempt it again.
1019
1025
1020 This configuration will apply for moves in any direction, either adding the
1026 This configuration will apply for moves in any direction, either adding the
1021 `dirstate-tracked-hint` format if `format.use-dirstate-tracked-hint=yes` or
1027 `dirstate-tracked-hint` format if `format.use-dirstate-tracked-hint=yes` or
1022 removing the `dirstate-tracked-hint` requirement if
1028 removing the `dirstate-tracked-hint` requirement if
1023 `format.use-dirstate-tracked-hint=no`. So we recommend setting both this
1029 `format.use-dirstate-tracked-hint=no`. So we recommend setting both this
1024 value and `format.use-dirstate-tracked-hint` at the same time.
1030 value and `format.use-dirstate-tracked-hint` at the same time.
1025
1031
1026
1032
1027 ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet``
1033 ``use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet``
1028 Hide message when performing such automatic upgrade.
1034 Hide message when performing such automatic upgrade.
1029
1035
1030
1036
1031 ``use-persistent-nodemap``
1037 ``use-persistent-nodemap``
1032 Enable or disable the "persistent-nodemap" feature which improves
1038 Enable or disable the "persistent-nodemap" feature which improves
1033 performance if the Rust extensions are available.
1039 performance if the Rust extensions are available.
1034
1040
1035 The "persistent-nodemap" persist the "node -> rev" on disk removing the
1041 The "persistent-nodemap" persist the "node -> rev" on disk removing the
1036 need to dynamically build that mapping for each Mercurial invocation. This
1042 need to dynamically build that mapping for each Mercurial invocation. This
1037 significantly reduces the startup cost of various local and server-side
1043 significantly reduces the startup cost of various local and server-side
1038 operation for larger repositories.
1044 operation for larger repositories.
1039
1045
1040 The performance-improving version of this feature is currently only
1046 The performance-improving version of this feature is currently only
1041 implemented in Rust (see :hg:`help rust`), so people not using a version of
1047 implemented in Rust (see :hg:`help rust`), so people not using a version of
1042 Mercurial compiled with the Rust parts might actually suffer some slowdown.
1048 Mercurial compiled with the Rust parts might actually suffer some slowdown.
1043 For this reason, such versions will by default refuse to access repositories
1049 For this reason, such versions will by default refuse to access repositories
1044 with "persistent-nodemap".
1050 with "persistent-nodemap".
1045
1051
1046 This behavior can be adjusted via configuration: check
1052 This behavior can be adjusted via configuration: check
1047 :hg:`help config.storage.revlog.persistent-nodemap.slow-path` for details.
1053 :hg:`help config.storage.revlog.persistent-nodemap.slow-path` for details.
1048
1054
1049 Repositories with this on-disk format require Mercurial 5.4 or above.
1055 Repositories with this on-disk format require Mercurial 5.4 or above.
1050
1056
1051 By default this format variant is disabled if the fast implementation is not
1057 By default this format variant is disabled if the fast implementation is not
1052 available, and enabled by default if the fast implementation is available.
1058 available, and enabled by default if the fast implementation is available.
1053
1059
1054 To accomodate installations of Mercurial without the fast implementation,
1060 To accomodate installations of Mercurial without the fast implementation,
1055 you can downgrade your repository. To do so run the following command:
1061 you can downgrade your repository. To do so run the following command:
1056
1062
1057 $ hg debugupgraderepo \
1063 $ hg debugupgraderepo \
1058 --run \
1064 --run \
1059 --config format.use-persistent-nodemap=False \
1065 --config format.use-persistent-nodemap=False \
1060 --config storage.revlog.persistent-nodemap.slow-path=allow
1066 --config storage.revlog.persistent-nodemap.slow-path=allow
1061
1067
1062 ``use-share-safe``
1068 ``use-share-safe``
1063 Enforce "safe" behaviors for all "shares" that access this repository.
1069 Enforce "safe" behaviors for all "shares" that access this repository.
1064
1070
1065 With this feature, "shares" using this repository as a source will:
1071 With this feature, "shares" using this repository as a source will:
1066
1072
1067 * read the source repository's configuration (`<source>/.hg/hgrc`).
1073 * read the source repository's configuration (`<source>/.hg/hgrc`).
1068 * read and use the source repository's "requirements"
1074 * read and use the source repository's "requirements"
1069 (except the working copy specific one).
1075 (except the working copy specific one).
1070
1076
1071 Without this feature, "shares" using this repository as a source will:
1077 Without this feature, "shares" using this repository as a source will:
1072
1078
1073 * keep tracking the repository "requirements" in the share only, ignoring
1079 * keep tracking the repository "requirements" in the share only, ignoring
1074 the source "requirements", possibly diverging from them.
1080 the source "requirements", possibly diverging from them.
1075 * ignore source repository config. This can create problems, like silently
1081 * ignore source repository config. This can create problems, like silently
1076 ignoring important hooks.
1082 ignoring important hooks.
1077
1083
1078 Beware that existing shares will not be upgraded/downgraded, and by
1084 Beware that existing shares will not be upgraded/downgraded, and by
1079 default, Mercurial will refuse to interact with them until the mismatch
1085 default, Mercurial will refuse to interact with them until the mismatch
1080 is resolved. See :hg:`help config.share.safe-mismatch.source-safe` and
1086 is resolved. See :hg:`help config.share.safe-mismatch.source-safe` and
1081 :hg:`help config.share.safe-mismatch.source-not-safe` for details.
1087 :hg:`help config.share.safe-mismatch.source-not-safe` for details.
1082
1088
1083 Introduced in Mercurial 5.7.
1089 Introduced in Mercurial 5.7.
1084
1090
1085 Enabled by default in Mercurial 6.1.
1091 Enabled by default in Mercurial 6.1.
1086
1092
1087 ``use-share-safe.automatic-upgrade-of-mismatching-repositories``
1093 ``use-share-safe.automatic-upgrade-of-mismatching-repositories``
1088 When enabled, an automatic upgrade will be triggered when a repository format
1094 When enabled, an automatic upgrade will be triggered when a repository format
1089 does not match its `use-share-safe` config.
1095 does not match its `use-share-safe` config.
1090
1096
1091 This is an advanced behavior that most users will not need. We recommend you
1097 This is an advanced behavior that most users will not need. We recommend you
1092 don't use this unless you are a seasoned administrator of a Mercurial install
1098 don't use this unless you are a seasoned administrator of a Mercurial install
1093 base.
1099 base.
1094
1100
1095 Automatic upgrade means that any process accessing the repository will
1101 Automatic upgrade means that any process accessing the repository will
1096 upgrade the repository format to use `share-safe`. This only triggers if a
1102 upgrade the repository format to use `share-safe`. This only triggers if a
1097 change is needed. This also applies to operation that would have been
1103 change is needed. This also applies to operation that would have been
1098 read-only (like hg status).
1104 read-only (like hg status).
1099
1105
1100 If the repository cannot be locked, the automatic-upgrade operation will be
1106 If the repository cannot be locked, the automatic-upgrade operation will be
1101 skipped. The next operation will attempt it again.
1107 skipped. The next operation will attempt it again.
1102
1108
1103 This configuration will apply for moves in any direction, either adding the
1109 This configuration will apply for moves in any direction, either adding the
1104 `share-safe` format if `format.use-share-safe=yes` or removing the
1110 `share-safe` format if `format.use-share-safe=yes` or removing the
1105 `share-safe` requirement if `format.use-share-safe=no`. So we recommend
1111 `share-safe` requirement if `format.use-share-safe=no`. So we recommend
1106 setting both this value and `format.use-share-safe` at the same time.
1112 setting both this value and `format.use-share-safe` at the same time.
1107
1113
1108 ``use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet``
1114 ``use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet``
1109 Hide message when performing such automatic upgrade.
1115 Hide message when performing such automatic upgrade.
1110
1116
1111 ``usestore``
1117 ``usestore``
1112 Enable or disable the "store" repository format which improves
1118 Enable or disable the "store" repository format which improves
1113 compatibility with systems that fold case or otherwise mangle
1119 compatibility with systems that fold case or otherwise mangle
1114 filenames. Disabling this option will allow you to store longer filenames
1120 filenames. Disabling this option will allow you to store longer filenames
1115 in some situations at the expense of compatibility.
1121 in some situations at the expense of compatibility.
1116
1122
1117 Repositories with this on-disk format require Mercurial version 0.9.4.
1123 Repositories with this on-disk format require Mercurial version 0.9.4.
1118
1124
1119 Enabled by default.
1125 Enabled by default.
1120
1126
1121 ``sparse-revlog``
1127 ``sparse-revlog``
1122 Enable or disable the ``sparse-revlog`` delta strategy. This format improves
1128 Enable or disable the ``sparse-revlog`` delta strategy. This format improves
1123 delta re-use inside revlog. For very branchy repositories, it results in a
1129 delta re-use inside revlog. For very branchy repositories, it results in a
1124 smaller store. For repositories with many revisions, it also helps
1130 smaller store. For repositories with many revisions, it also helps
1125 performance (by using shortened delta chains.)
1131 performance (by using shortened delta chains.)
1126
1132
1127 Repositories with this on-disk format require Mercurial version 4.7
1133 Repositories with this on-disk format require Mercurial version 4.7
1128
1134
1129 Enabled by default.
1135 Enabled by default.
1130
1136
1131 ``revlog-compression``
1137 ``revlog-compression``
1132 Compression algorithm used by revlog. Supported values are `zlib` and
1138 Compression algorithm used by revlog. Supported values are `zlib` and
1133 `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is
1139 `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is
1134 a newer format that is usually a net win over `zlib`, operating faster at
1140 a newer format that is usually a net win over `zlib`, operating faster at
1135 better compression rates. Use `zstd` to reduce CPU usage. Multiple values
1141 better compression rates. Use `zstd` to reduce CPU usage. Multiple values
1136 can be specified, the first available one will be used.
1142 can be specified, the first available one will be used.
1137
1143
1138 On some systems, the Mercurial installation may lack `zstd` support.
1144 On some systems, the Mercurial installation may lack `zstd` support.
1139
1145
1140 Default is `zstd` if available, `zlib` otherwise.
1146 Default is `zstd` if available, `zlib` otherwise.
1141
1147
1142 ``bookmarks-in-store``
1148 ``bookmarks-in-store``
1143 Store bookmarks in .hg/store/. This means that bookmarks are shared when
1149 Store bookmarks in .hg/store/. This means that bookmarks are shared when
1144 using `hg share` regardless of the `-B` option.
1150 using `hg share` regardless of the `-B` option.
1145
1151
1146 Repositories with this on-disk format require Mercurial version 5.1.
1152 Repositories with this on-disk format require Mercurial version 5.1.
1147
1153
1148 Disabled by default.
1154 Disabled by default.
1149
1155
1150
1156
1151 ``graph``
1157 ``graph``
1152 ---------
1158 ---------
1153
1159
1154 Web graph view configuration. This section let you change graph
1160 Web graph view configuration. This section let you change graph
1155 elements display properties by branches, for instance to make the
1161 elements display properties by branches, for instance to make the
1156 ``default`` branch stand out.
1162 ``default`` branch stand out.
1157
1163
1158 Each line has the following format::
1164 Each line has the following format::
1159
1165
1160 <branch>.<argument> = <value>
1166 <branch>.<argument> = <value>
1161
1167
1162 where ``<branch>`` is the name of the branch being
1168 where ``<branch>`` is the name of the branch being
1163 customized. Example::
1169 customized. Example::
1164
1170
1165 [graph]
1171 [graph]
1166 # 2px width
1172 # 2px width
1167 default.width = 2
1173 default.width = 2
1168 # red color
1174 # red color
1169 default.color = FF0000
1175 default.color = FF0000
1170
1176
1171 Supported arguments:
1177 Supported arguments:
1172
1178
1173 ``width``
1179 ``width``
1174 Set branch edges width in pixels.
1180 Set branch edges width in pixels.
1175
1181
1176 ``color``
1182 ``color``
1177 Set branch edges color in hexadecimal RGB notation.
1183 Set branch edges color in hexadecimal RGB notation.
1178
1184
1179 ``hooks``
1185 ``hooks``
1180 ---------
1186 ---------
1181
1187
1182 Commands or Python functions that get automatically executed by
1188 Commands or Python functions that get automatically executed by
1183 various actions such as starting or finishing a commit. Multiple
1189 various actions such as starting or finishing a commit. Multiple
1184 hooks can be run for the same action by appending a suffix to the
1190 hooks can be run for the same action by appending a suffix to the
1185 action. Overriding a site-wide hook can be done by changing its
1191 action. Overriding a site-wide hook can be done by changing its
1186 value or setting it to an empty string. Hooks can be prioritized
1192 value or setting it to an empty string. Hooks can be prioritized
1187 by adding a prefix of ``priority.`` to the hook name on a new line
1193 by adding a prefix of ``priority.`` to the hook name on a new line
1188 and setting the priority. The default priority is 0.
1194 and setting the priority. The default priority is 0.
1189
1195
1190 Example ``.hg/hgrc``::
1196 Example ``.hg/hgrc``::
1191
1197
1192 [hooks]
1198 [hooks]
1193 # update working directory after adding changesets
1199 # update working directory after adding changesets
1194 changegroup.update = hg update
1200 changegroup.update = hg update
1195 # do not use the site-wide hook
1201 # do not use the site-wide hook
1196 incoming =
1202 incoming =
1197 incoming.email = /my/email/hook
1203 incoming.email = /my/email/hook
1198 incoming.autobuild = /my/build/hook
1204 incoming.autobuild = /my/build/hook
1199 # force autobuild hook to run before other incoming hooks
1205 # force autobuild hook to run before other incoming hooks
1200 priority.incoming.autobuild = 1
1206 priority.incoming.autobuild = 1
1201 ### control HGPLAIN setting when running autobuild hook
1207 ### control HGPLAIN setting when running autobuild hook
1202 # HGPLAIN always set (default from Mercurial 5.7)
1208 # HGPLAIN always set (default from Mercurial 5.7)
1203 incoming.autobuild:run-with-plain = yes
1209 incoming.autobuild:run-with-plain = yes
1204 # HGPLAIN never set
1210 # HGPLAIN never set
1205 incoming.autobuild:run-with-plain = no
1211 incoming.autobuild:run-with-plain = no
1206 # HGPLAIN inherited from environment (default before Mercurial 5.7)
1212 # HGPLAIN inherited from environment (default before Mercurial 5.7)
1207 incoming.autobuild:run-with-plain = auto
1213 incoming.autobuild:run-with-plain = auto
1208
1214
1209 Most hooks are run with environment variables set that give useful
1215 Most hooks are run with environment variables set that give useful
1210 additional information. For each hook below, the environment variables
1216 additional information. For each hook below, the environment variables
1211 it is passed are listed with names in the form ``$HG_foo``. The
1217 it is passed are listed with names in the form ``$HG_foo``. The
1212 ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks.
1218 ``$HG_HOOKTYPE`` and ``$HG_HOOKNAME`` variables are set for all hooks.
1213 They contain the type of hook which triggered the run and the full name
1219 They contain the type of hook which triggered the run and the full name
1214 of the hook in the config, respectively. In the example above, this will
1220 of the hook in the config, respectively. In the example above, this will
1215 be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``.
1221 be ``$HG_HOOKTYPE=incoming`` and ``$HG_HOOKNAME=incoming.email``.
1216
1222
1217 .. container:: windows
1223 .. container:: windows
1218
1224
1219 Some basic Unix syntax can be enabled for portability, including ``$VAR``
1225 Some basic Unix syntax can be enabled for portability, including ``$VAR``
1220 and ``${VAR}`` style variables. A ``~`` followed by ``\`` or ``/`` will
1226 and ``${VAR}`` style variables. A ``~`` followed by ``\`` or ``/`` will
1221 be expanded to ``%USERPROFILE%`` to simulate a subset of tilde expansion
1227 be expanded to ``%USERPROFILE%`` to simulate a subset of tilde expansion
1222 on Unix. To use a literal ``$`` or ``~``, it must be escaped with a back
1228 on Unix. To use a literal ``$`` or ``~``, it must be escaped with a back
1223 slash or inside of a strong quote. Strong quotes will be replaced by
1229 slash or inside of a strong quote. Strong quotes will be replaced by
1224 double quotes after processing.
1230 double quotes after processing.
1225
1231
1226 This feature is enabled by adding a prefix of ``tonative.`` to the hook
1232 This feature is enabled by adding a prefix of ``tonative.`` to the hook
1227 name on a new line, and setting it to ``True``. For example::
1233 name on a new line, and setting it to ``True``. For example::
1228
1234
1229 [hooks]
1235 [hooks]
1230 incoming.autobuild = /my/build/hook
1236 incoming.autobuild = /my/build/hook
1231 # enable translation to cmd.exe syntax for autobuild hook
1237 # enable translation to cmd.exe syntax for autobuild hook
1232 tonative.incoming.autobuild = True
1238 tonative.incoming.autobuild = True
1233
1239
1234 ``changegroup``
1240 ``changegroup``
1235 Run after a changegroup has been added via push, pull or unbundle. The ID of
1241 Run after a changegroup has been added via push, pull or unbundle. The ID of
1236 the first new changeset is in ``$HG_NODE`` and last is in ``$HG_NODE_LAST``.
1242 the first new changeset is in ``$HG_NODE`` and last is in ``$HG_NODE_LAST``.
1237 The URL from which changes came is in ``$HG_URL``.
1243 The URL from which changes came is in ``$HG_URL``.
1238
1244
1239 ``commit``
1245 ``commit``
1240 Run after a changeset has been created in the local repository. The ID
1246 Run after a changeset has been created in the local repository. The ID
1241 of the newly created changeset is in ``$HG_NODE``. Parent changeset
1247 of the newly created changeset is in ``$HG_NODE``. Parent changeset
1242 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1248 IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1243
1249
1244 ``incoming``
1250 ``incoming``
1245 Run after a changeset has been pulled, pushed, or unbundled into
1251 Run after a changeset has been pulled, pushed, or unbundled into
1246 the local repository. The ID of the newly arrived changeset is in
1252 the local repository. The ID of the newly arrived changeset is in
1247 ``$HG_NODE``. The URL that was source of the changes is in ``$HG_URL``.
1253 ``$HG_NODE``. The URL that was source of the changes is in ``$HG_URL``.
1248
1254
1249 ``outgoing``
1255 ``outgoing``
1250 Run after sending changes from the local repository to another. The ID of
1256 Run after sending changes from the local repository to another. The ID of
1251 first changeset sent is in ``$HG_NODE``. The source of operation is in
1257 first changeset sent is in ``$HG_NODE``. The source of operation is in
1252 ``$HG_SOURCE``. Also see :hg:`help config.hooks.preoutgoing`.
1258 ``$HG_SOURCE``. Also see :hg:`help config.hooks.preoutgoing`.
1253
1259
1254 ``post-<command>``
1260 ``post-<command>``
1255 Run after successful invocations of the associated command. The
1261 Run after successful invocations of the associated command. The
1256 contents of the command line are passed as ``$HG_ARGS`` and the result
1262 contents of the command line are passed as ``$HG_ARGS`` and the result
1257 code in ``$HG_RESULT``. Parsed command line arguments are passed as
1263 code in ``$HG_RESULT``. Parsed command line arguments are passed as
1258 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
1264 ``$HG_PATS`` and ``$HG_OPTS``. These contain string representations of
1259 the python data internally passed to <command>. ``$HG_OPTS`` is a
1265 the python data internally passed to <command>. ``$HG_OPTS`` is a
1260 dictionary of options (with unspecified options set to their defaults).
1266 dictionary of options (with unspecified options set to their defaults).
1261 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
1267 ``$HG_PATS`` is a list of arguments. Hook failure is ignored.
1262
1268
1263 ``fail-<command>``
1269 ``fail-<command>``
1264 Run after a failed invocation of an associated command. The contents
1270 Run after a failed invocation of an associated command. The contents
1265 of the command line are passed as ``$HG_ARGS``. Parsed command line
1271 of the command line are passed as ``$HG_ARGS``. Parsed command line
1266 arguments are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain
1272 arguments are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain
1267 string representations of the python data internally passed to
1273 string representations of the python data internally passed to
1268 <command>. ``$HG_OPTS`` is a dictionary of options (with unspecified
1274 <command>. ``$HG_OPTS`` is a dictionary of options (with unspecified
1269 options set to their defaults). ``$HG_PATS`` is a list of arguments.
1275 options set to their defaults). ``$HG_PATS`` is a list of arguments.
1270 Hook failure is ignored.
1276 Hook failure is ignored.
1271
1277
1272 ``pre-<command>``
1278 ``pre-<command>``
1273 Run before executing the associated command. The contents of the
1279 Run before executing the associated command. The contents of the
1274 command line are passed as ``$HG_ARGS``. Parsed command line arguments
1280 command line are passed as ``$HG_ARGS``. Parsed command line arguments
1275 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
1281 are passed as ``$HG_PATS`` and ``$HG_OPTS``. These contain string
1276 representations of the data internally passed to <command>. ``$HG_OPTS``
1282 representations of the data internally passed to <command>. ``$HG_OPTS``
1277 is a dictionary of options (with unspecified options set to their
1283 is a dictionary of options (with unspecified options set to their
1278 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
1284 defaults). ``$HG_PATS`` is a list of arguments. If the hook returns
1279 failure, the command doesn't execute and Mercurial returns the failure
1285 failure, the command doesn't execute and Mercurial returns the failure
1280 code.
1286 code.
1281
1287
1282 ``prechangegroup``
1288 ``prechangegroup``
1283 Run before a changegroup is added via push, pull or unbundle. Exit
1289 Run before a changegroup is added via push, pull or unbundle. Exit
1284 status 0 allows the changegroup to proceed. A non-zero status will
1290 status 0 allows the changegroup to proceed. A non-zero status will
1285 cause the push, pull or unbundle to fail. The URL from which changes
1291 cause the push, pull or unbundle to fail. The URL from which changes
1286 will come is in ``$HG_URL``.
1292 will come is in ``$HG_URL``.
1287
1293
1288 ``precommit``
1294 ``precommit``
1289 Run before starting a local commit. Exit status 0 allows the
1295 Run before starting a local commit. Exit status 0 allows the
1290 commit to proceed. A non-zero status will cause the commit to fail.
1296 commit to proceed. A non-zero status will cause the commit to fail.
1291 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1297 Parent changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1292
1298
1293 ``prelistkeys``
1299 ``prelistkeys``
1294 Run before listing pushkeys (like bookmarks) in the
1300 Run before listing pushkeys (like bookmarks) in the
1295 repository. A non-zero status will cause failure. The key namespace is
1301 repository. A non-zero status will cause failure. The key namespace is
1296 in ``$HG_NAMESPACE``.
1302 in ``$HG_NAMESPACE``.
1297
1303
1298 ``preoutgoing``
1304 ``preoutgoing``
1299 Run before collecting changes to send from the local repository to
1305 Run before collecting changes to send from the local repository to
1300 another. A non-zero status will cause failure. This lets you prevent
1306 another. A non-zero status will cause failure. This lets you prevent
1301 pull over HTTP or SSH. It can also prevent propagating commits (via
1307 pull over HTTP or SSH. It can also prevent propagating commits (via
1302 local pull, push (outbound) or bundle commands), but not completely,
1308 local pull, push (outbound) or bundle commands), but not completely,
1303 since you can just copy files instead. The source of operation is in
1309 since you can just copy files instead. The source of operation is in
1304 ``$HG_SOURCE``. If "serve", the operation is happening on behalf of a remote
1310 ``$HG_SOURCE``. If "serve", the operation is happening on behalf of a remote
1305 SSH or HTTP repository. If "push", "pull" or "bundle", the operation
1311 SSH or HTTP repository. If "push", "pull" or "bundle", the operation
1306 is happening on behalf of a repository on same system.
1312 is happening on behalf of a repository on same system.
1307
1313
1308 ``prepushkey``
1314 ``prepushkey``
1309 Run before a pushkey (like a bookmark) is added to the
1315 Run before a pushkey (like a bookmark) is added to the
1310 repository. A non-zero status will cause the key to be rejected. The
1316 repository. A non-zero status will cause the key to be rejected. The
1311 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
1317 key namespace is in ``$HG_NAMESPACE``, the key is in ``$HG_KEY``,
1312 the old value (if any) is in ``$HG_OLD``, and the new value is in
1318 the old value (if any) is in ``$HG_OLD``, and the new value is in
1313 ``$HG_NEW``.
1319 ``$HG_NEW``.
1314
1320
1315 ``pretag``
1321 ``pretag``
1316 Run before creating a tag. Exit status 0 allows the tag to be
1322 Run before creating a tag. Exit status 0 allows the tag to be
1317 created. A non-zero status will cause the tag to fail. The ID of the
1323 created. A non-zero status will cause the tag to fail. The ID of the
1318 changeset to tag is in ``$HG_NODE``. The name of tag is in ``$HG_TAG``. The
1324 changeset to tag is in ``$HG_NODE``. The name of tag is in ``$HG_TAG``. The
1319 tag is local if ``$HG_LOCAL=1``, or in the repository if ``$HG_LOCAL=0``.
1325 tag is local if ``$HG_LOCAL=1``, or in the repository if ``$HG_LOCAL=0``.
1320
1326
1321 ``pretransmit-inline-clone-bundle``
1327 ``pretransmit-inline-clone-bundle``
1322 Run before transferring an inline clonebundle to the peer.
1328 Run before transferring an inline clonebundle to the peer.
1323 If the exit status is 0, the inline clonebundle will be allowed to be
1329 If the exit status is 0, the inline clonebundle will be allowed to be
1324 transferred. A non-zero status will cause the transfer to fail.
1330 transferred. A non-zero status will cause the transfer to fail.
1325 The path of the inline clonebundle is in ``$HG_CLONEBUNDLEPATH``.
1331 The path of the inline clonebundle is in ``$HG_CLONEBUNDLEPATH``.
1326
1332
1327 ``pretxnopen``
1333 ``pretxnopen``
1328 Run before any new repository transaction is open. The reason for the
1334 Run before any new repository transaction is open. The reason for the
1329 transaction will be in ``$HG_TXNNAME``, and a unique identifier for the
1335 transaction will be in ``$HG_TXNNAME``, and a unique identifier for the
1330 transaction will be in ``$HG_TXNID``. A non-zero status will prevent the
1336 transaction will be in ``$HG_TXNID``. A non-zero status will prevent the
1331 transaction from being opened.
1337 transaction from being opened.
1332
1338
1333 ``pretxnclose``
1339 ``pretxnclose``
1334 Run right before the transaction is actually finalized. Any repository change
1340 Run right before the transaction is actually finalized. Any repository change
1335 will be visible to the hook program. This lets you validate the transaction
1341 will be visible to the hook program. This lets you validate the transaction
1336 content or change it. Exit status 0 allows the commit to proceed. A non-zero
1342 content or change it. Exit status 0 allows the commit to proceed. A non-zero
1337 status will cause the transaction to be rolled back. The reason for the
1343 status will cause the transaction to be rolled back. The reason for the
1338 transaction opening will be in ``$HG_TXNNAME``, and a unique identifier for
1344 transaction opening will be in ``$HG_TXNNAME``, and a unique identifier for
1339 the transaction will be in ``$HG_TXNID``. The rest of the available data will
1345 the transaction will be in ``$HG_TXNID``. The rest of the available data will
1340 vary according the transaction type. Changes unbundled to the repository will
1346 vary according the transaction type. Changes unbundled to the repository will
1341 add ``$HG_URL`` and ``$HG_SOURCE``. New changesets will add ``$HG_NODE`` (the
1347 add ``$HG_URL`` and ``$HG_SOURCE``. New changesets will add ``$HG_NODE`` (the
1342 ID of the first added changeset), ``$HG_NODE_LAST`` (the ID of the last added
1348 ID of the first added changeset), ``$HG_NODE_LAST`` (the ID of the last added
1343 changeset). Bookmark and phase changes will set ``$HG_BOOKMARK_MOVED`` and
1349 changeset). Bookmark and phase changes will set ``$HG_BOOKMARK_MOVED`` and
1344 ``$HG_PHASES_MOVED`` to ``1`` respectively. The number of new obsmarkers, if
1350 ``$HG_PHASES_MOVED`` to ``1`` respectively. The number of new obsmarkers, if
1345 any, will be in ``$HG_NEW_OBSMARKERS``, etc.
1351 any, will be in ``$HG_NEW_OBSMARKERS``, etc.
1346
1352
1347 ``pretxnclose-bookmark``
1353 ``pretxnclose-bookmark``
1348 Run right before a bookmark change is actually finalized. Any repository
1354 Run right before a bookmark change is actually finalized. Any repository
1349 change will be visible to the hook program. This lets you validate the
1355 change will be visible to the hook program. This lets you validate the
1350 transaction content or change it. Exit status 0 allows the commit to
1356 transaction content or change it. Exit status 0 allows the commit to
1351 proceed. A non-zero status will cause the transaction to be rolled back.
1357 proceed. A non-zero status will cause the transaction to be rolled back.
1352 The name of the bookmark will be available in ``$HG_BOOKMARK``, the new
1358 The name of the bookmark will be available in ``$HG_BOOKMARK``, the new
1353 bookmark location will be available in ``$HG_NODE`` while the previous
1359 bookmark location will be available in ``$HG_NODE`` while the previous
1354 location will be available in ``$HG_OLDNODE``. In case of a bookmark
1360 location will be available in ``$HG_OLDNODE``. In case of a bookmark
1355 creation ``$HG_OLDNODE`` will be empty. In case of deletion ``$HG_NODE``
1361 creation ``$HG_OLDNODE`` will be empty. In case of deletion ``$HG_NODE``
1356 will be empty.
1362 will be empty.
1357 In addition, the reason for the transaction opening will be in
1363 In addition, the reason for the transaction opening will be in
1358 ``$HG_TXNNAME``, and a unique identifier for the transaction will be in
1364 ``$HG_TXNNAME``, and a unique identifier for the transaction will be in
1359 ``$HG_TXNID``.
1365 ``$HG_TXNID``.
1360
1366
1361 ``pretxnclose-phase``
1367 ``pretxnclose-phase``
1362 Run right before a phase change is actually finalized. Any repository change
1368 Run right before a phase change is actually finalized. Any repository change
1363 will be visible to the hook program. This lets you validate the transaction
1369 will be visible to the hook program. This lets you validate the transaction
1364 content or change it. Exit status 0 allows the commit to proceed. A non-zero
1370 content or change it. Exit status 0 allows the commit to proceed. A non-zero
1365 status will cause the transaction to be rolled back. The hook is called
1371 status will cause the transaction to be rolled back. The hook is called
1366 multiple times, once for each revision affected by a phase change.
1372 multiple times, once for each revision affected by a phase change.
1367 The affected node is available in ``$HG_NODE``, the phase in ``$HG_PHASE``
1373 The affected node is available in ``$HG_NODE``, the phase in ``$HG_PHASE``
1368 while the previous ``$HG_OLDPHASE``. In case of new node, ``$HG_OLDPHASE``
1374 while the previous ``$HG_OLDPHASE``. In case of new node, ``$HG_OLDPHASE``
1369 will be empty. In addition, the reason for the transaction opening will be in
1375 will be empty. In addition, the reason for the transaction opening will be in
1370 ``$HG_TXNNAME``, and a unique identifier for the transaction will be in
1376 ``$HG_TXNNAME``, and a unique identifier for the transaction will be in
1371 ``$HG_TXNID``. The hook is also run for newly added revisions. In this case
1377 ``$HG_TXNID``. The hook is also run for newly added revisions. In this case
1372 the ``$HG_OLDPHASE`` entry will be empty.
1378 the ``$HG_OLDPHASE`` entry will be empty.
1373
1379
1374 ``txnclose``
1380 ``txnclose``
1375 Run after any repository transaction has been committed. At this
1381 Run after any repository transaction has been committed. At this
1376 point, the transaction can no longer be rolled back. The hook will run
1382 point, the transaction can no longer be rolled back. The hook will run
1377 after the lock is released. See :hg:`help config.hooks.pretxnclose` for
1383 after the lock is released. See :hg:`help config.hooks.pretxnclose` for
1378 details about available variables.
1384 details about available variables.
1379
1385
1380 ``txnclose-bookmark``
1386 ``txnclose-bookmark``
1381 Run after any bookmark change has been committed. At this point, the
1387 Run after any bookmark change has been committed. At this point, the
1382 transaction can no longer be rolled back. The hook will run after the lock
1388 transaction can no longer be rolled back. The hook will run after the lock
1383 is released. See :hg:`help config.hooks.pretxnclose-bookmark` for details
1389 is released. See :hg:`help config.hooks.pretxnclose-bookmark` for details
1384 about available variables.
1390 about available variables.
1385
1391
1386 ``txnclose-phase``
1392 ``txnclose-phase``
1387 Run after any phase change has been committed. At this point, the
1393 Run after any phase change has been committed. At this point, the
1388 transaction can no longer be rolled back. The hook will run after the lock
1394 transaction can no longer be rolled back. The hook will run after the lock
1389 is released. See :hg:`help config.hooks.pretxnclose-phase` for details about
1395 is released. See :hg:`help config.hooks.pretxnclose-phase` for details about
1390 available variables.
1396 available variables.
1391
1397
1392 ``txnabort``
1398 ``txnabort``
1393 Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose`
1399 Run when a transaction is aborted. See :hg:`help config.hooks.pretxnclose`
1394 for details about available variables.
1400 for details about available variables.
1395
1401
1396 ``pretxnchangegroup``
1402 ``pretxnchangegroup``
1397 Run after a changegroup has been added via push, pull or unbundle, but before
1403 Run after a changegroup has been added via push, pull or unbundle, but before
1398 the transaction has been committed. The changegroup is visible to the hook
1404 the transaction has been committed. The changegroup is visible to the hook
1399 program. This allows validation of incoming changes before accepting them.
1405 program. This allows validation of incoming changes before accepting them.
1400 The ID of the first new changeset is in ``$HG_NODE`` and last is in
1406 The ID of the first new changeset is in ``$HG_NODE`` and last is in
1401 ``$HG_NODE_LAST``. Exit status 0 allows the transaction to commit. A non-zero
1407 ``$HG_NODE_LAST``. Exit status 0 allows the transaction to commit. A non-zero
1402 status will cause the transaction to be rolled back, and the push, pull or
1408 status will cause the transaction to be rolled back, and the push, pull or
1403 unbundle will fail. The URL that was the source of changes is in ``$HG_URL``.
1409 unbundle will fail. The URL that was the source of changes is in ``$HG_URL``.
1404
1410
1405 ``pretxncommit``
1411 ``pretxncommit``
1406 Run after a changeset has been created, but before the transaction is
1412 Run after a changeset has been created, but before the transaction is
1407 committed. The changeset is visible to the hook program. This allows
1413 committed. The changeset is visible to the hook program. This allows
1408 validation of the commit message and changes. Exit status 0 allows the
1414 validation of the commit message and changes. Exit status 0 allows the
1409 commit to proceed. A non-zero status will cause the transaction to
1415 commit to proceed. A non-zero status will cause the transaction to
1410 be rolled back. The ID of the new changeset is in ``$HG_NODE``. The parent
1416 be rolled back. The ID of the new changeset is in ``$HG_NODE``. The parent
1411 changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1417 changeset IDs are in ``$HG_PARENT1`` and ``$HG_PARENT2``.
1412
1418
1413 ``preupdate``
1419 ``preupdate``
1414 Run before updating the working directory. Exit status 0 allows
1420 Run before updating the working directory. Exit status 0 allows
1415 the update to proceed. A non-zero status will prevent the update.
1421 the update to proceed. A non-zero status will prevent the update.
1416 The changeset ID of first new parent is in ``$HG_PARENT1``. If updating to a
1422 The changeset ID of first new parent is in ``$HG_PARENT1``. If updating to a
1417 merge, the ID of second new parent is in ``$HG_PARENT2``.
1423 merge, the ID of second new parent is in ``$HG_PARENT2``.
1418
1424
1419 ``listkeys``
1425 ``listkeys``
1420 Run after listing pushkeys (like bookmarks) in the repository. The
1426 Run after listing pushkeys (like bookmarks) in the repository. The
1421 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
1427 key namespace is in ``$HG_NAMESPACE``. ``$HG_VALUES`` is a
1422 dictionary containing the keys and values.
1428 dictionary containing the keys and values.
1423
1429
1424 ``pushkey``
1430 ``pushkey``
1425 Run after a pushkey (like a bookmark) is added to the
1431 Run after a pushkey (like a bookmark) is added to the
1426 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
1432 repository. The key namespace is in ``$HG_NAMESPACE``, the key is in
1427 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
1433 ``$HG_KEY``, the old value (if any) is in ``$HG_OLD``, and the new
1428 value is in ``$HG_NEW``.
1434 value is in ``$HG_NEW``.
1429
1435
1430 ``tag``
1436 ``tag``
1431 Run after a tag is created. The ID of the tagged changeset is in ``$HG_NODE``.
1437 Run after a tag is created. The ID of the tagged changeset is in ``$HG_NODE``.
1432 The name of tag is in ``$HG_TAG``. The tag is local if ``$HG_LOCAL=1``, or in
1438 The name of tag is in ``$HG_TAG``. The tag is local if ``$HG_LOCAL=1``, or in
1433 the repository if ``$HG_LOCAL=0``.
1439 the repository if ``$HG_LOCAL=0``.
1434
1440
1435 ``update``
1441 ``update``
1436 Run after updating the working directory. The changeset ID of first
1442 Run after updating the working directory. The changeset ID of first
1437 new parent is in ``$HG_PARENT1``. If updating to a merge, the ID of second new
1443 new parent is in ``$HG_PARENT1``. If updating to a merge, the ID of second new
1438 parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
1444 parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
1439 update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``.
1445 update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``.
1440
1446
1441 ``prelock``
1447 ``prelock``
1442 run before the store lock is taken, mostly used for test and debug.
1448 run before the store lock is taken, mostly used for test and debug.
1443
1449
1444 ``prewlock``
1450 ``prewlock``
1445 run before the working copy lock is taken, mostly used for test and debug.
1451 run before the working copy lock is taken, mostly used for test and debug.
1446
1452
1447 .. note::
1453 .. note::
1448
1454
1449 It is generally better to use standard hooks rather than the
1455 It is generally better to use standard hooks rather than the
1450 generic pre- and post- command hooks, as they are guaranteed to be
1456 generic pre- and post- command hooks, as they are guaranteed to be
1451 called in the appropriate contexts for influencing transactions.
1457 called in the appropriate contexts for influencing transactions.
1452 Also, hooks like "commit" will be called in all contexts that
1458 Also, hooks like "commit" will be called in all contexts that
1453 generate a commit (e.g. tag) and not just the commit command.
1459 generate a commit (e.g. tag) and not just the commit command.
1454
1460
1455 .. note::
1461 .. note::
1456
1462
1457 Environment variables with empty values may not be passed to
1463 Environment variables with empty values may not be passed to
1458 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
1464 hooks on platforms such as Windows. As an example, ``$HG_PARENT2``
1459 will have an empty value under Unix-like platforms for non-merge
1465 will have an empty value under Unix-like platforms for non-merge
1460 changesets, while it will not be available at all under Windows.
1466 changesets, while it will not be available at all under Windows.
1461
1467
1462 The syntax for Python hooks is as follows::
1468 The syntax for Python hooks is as follows::
1463
1469
1464 hookname = python:modulename.submodule.callable
1470 hookname = python:modulename.submodule.callable
1465 hookname = python:/path/to/python/module.py:callable
1471 hookname = python:/path/to/python/module.py:callable
1466
1472
1467 Python hooks are run within the Mercurial process. Each hook is
1473 Python hooks are run within the Mercurial process. Each hook is
1468 called with at least three keyword arguments: a ui object (keyword
1474 called with at least three keyword arguments: a ui object (keyword
1469 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
1475 ``ui``), a repository object (keyword ``repo``), and a ``hooktype``
1470 keyword that tells what kind of hook is used. Arguments listed as
1476 keyword that tells what kind of hook is used. Arguments listed as
1471 environment variables above are passed as keyword arguments, with no
1477 environment variables above are passed as keyword arguments, with no
1472 ``HG_`` prefix, and names in lower case.
1478 ``HG_`` prefix, and names in lower case.
1473
1479
1474 If a Python hook returns a "true" value or raises an exception, this
1480 If a Python hook returns a "true" value or raises an exception, this
1475 is treated as a failure.
1481 is treated as a failure.
1476
1482
1477
1483
1478 ``hostfingerprints``
1484 ``hostfingerprints``
1479 --------------------
1485 --------------------
1480
1486
1481 (Deprecated. Use ``[hostsecurity]``'s ``fingerprints`` options instead.)
1487 (Deprecated. Use ``[hostsecurity]``'s ``fingerprints`` options instead.)
1482
1488
1483 Fingerprints of the certificates of known HTTPS servers.
1489 Fingerprints of the certificates of known HTTPS servers.
1484
1490
1485 A HTTPS connection to a server with a fingerprint configured here will
1491 A HTTPS connection to a server with a fingerprint configured here will
1486 only succeed if the servers certificate matches the fingerprint.
1492 only succeed if the servers certificate matches the fingerprint.
1487 This is very similar to how ssh known hosts works.
1493 This is very similar to how ssh known hosts works.
1488
1494
1489 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
1495 The fingerprint is the SHA-1 hash value of the DER encoded certificate.
1490 Multiple values can be specified (separated by spaces or commas). This can
1496 Multiple values can be specified (separated by spaces or commas). This can
1491 be used to define both old and new fingerprints while a host transitions
1497 be used to define both old and new fingerprints while a host transitions
1492 to a new certificate.
1498 to a new certificate.
1493
1499
1494 The CA chain and web.cacerts is not used for servers with a fingerprint.
1500 The CA chain and web.cacerts is not used for servers with a fingerprint.
1495
1501
1496 For example::
1502 For example::
1497
1503
1498 [hostfingerprints]
1504 [hostfingerprints]
1499 hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1505 hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1500 hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1506 hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1501
1507
1502 ``hostsecurity``
1508 ``hostsecurity``
1503 ----------------
1509 ----------------
1504
1510
1505 Used to specify global and per-host security settings for connecting to
1511 Used to specify global and per-host security settings for connecting to
1506 other machines.
1512 other machines.
1507
1513
1508 The following options control default behavior for all hosts.
1514 The following options control default behavior for all hosts.
1509
1515
1510 ``ciphers``
1516 ``ciphers``
1511 Defines the cryptographic ciphers to use for connections.
1517 Defines the cryptographic ciphers to use for connections.
1512
1518
1513 Value must be a valid OpenSSL Cipher List Format as documented at
1519 Value must be a valid OpenSSL Cipher List Format as documented at
1514 https://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT.
1520 https://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT.
1515
1521
1516 This setting is for advanced users only. Setting to incorrect values
1522 This setting is for advanced users only. Setting to incorrect values
1517 can significantly lower connection security or decrease performance.
1523 can significantly lower connection security or decrease performance.
1518 You have been warned.
1524 You have been warned.
1519
1525
1520 This option requires Python 2.7.
1526 This option requires Python 2.7.
1521
1527
1522 ``minimumprotocol``
1528 ``minimumprotocol``
1523 Defines the minimum channel encryption protocol to use.
1529 Defines the minimum channel encryption protocol to use.
1524
1530
1525 By default, the highest version of TLS supported by both client and server
1531 By default, the highest version of TLS supported by both client and server
1526 is used.
1532 is used.
1527
1533
1528 Allowed values are: ``tls1.0``, ``tls1.1``, ``tls1.2``.
1534 Allowed values are: ``tls1.0``, ``tls1.1``, ``tls1.2``.
1529
1535
1530 When running on an old Python version, only ``tls1.0`` is allowed since
1536 When running on an old Python version, only ``tls1.0`` is allowed since
1531 old versions of Python only support up to TLS 1.0.
1537 old versions of Python only support up to TLS 1.0.
1532
1538
1533 When running a Python that supports modern TLS versions, the default is
1539 When running a Python that supports modern TLS versions, the default is
1534 ``tls1.1``. ``tls1.0`` can still be used to allow TLS 1.0. However, this
1540 ``tls1.1``. ``tls1.0`` can still be used to allow TLS 1.0. However, this
1535 weakens security and should only be used as a feature of last resort if
1541 weakens security and should only be used as a feature of last resort if
1536 a server does not support TLS 1.1+.
1542 a server does not support TLS 1.1+.
1537
1543
1538 Options in the ``[hostsecurity]`` section can have the form
1544 Options in the ``[hostsecurity]`` section can have the form
1539 ``hostname``:``setting``. This allows multiple settings to be defined on a
1545 ``hostname``:``setting``. This allows multiple settings to be defined on a
1540 per-host basis.
1546 per-host basis.
1541
1547
1542 The following per-host settings can be defined.
1548 The following per-host settings can be defined.
1543
1549
1544 ``ciphers``
1550 ``ciphers``
1545 This behaves like ``ciphers`` as described above except it only applies
1551 This behaves like ``ciphers`` as described above except it only applies
1546 to the host on which it is defined.
1552 to the host on which it is defined.
1547
1553
1548 ``fingerprints``
1554 ``fingerprints``
1549 A list of hashes of the DER encoded peer/remote certificate. Values have
1555 A list of hashes of the DER encoded peer/remote certificate. Values have
1550 the form ``algorithm``:``fingerprint``. e.g.
1556 the form ``algorithm``:``fingerprint``. e.g.
1551 ``sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2``.
1557 ``sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2``.
1552 In addition, colons (``:``) can appear in the fingerprint part.
1558 In addition, colons (``:``) can appear in the fingerprint part.
1553
1559
1554 The following algorithms/prefixes are supported: ``sha1``, ``sha256``,
1560 The following algorithms/prefixes are supported: ``sha1``, ``sha256``,
1555 ``sha512``.
1561 ``sha512``.
1556
1562
1557 Use of ``sha256`` or ``sha512`` is preferred.
1563 Use of ``sha256`` or ``sha512`` is preferred.
1558
1564
1559 If a fingerprint is specified, the CA chain is not validated for this
1565 If a fingerprint is specified, the CA chain is not validated for this
1560 host and Mercurial will require the remote certificate to match one
1566 host and Mercurial will require the remote certificate to match one
1561 of the fingerprints specified. This means if the server updates its
1567 of the fingerprints specified. This means if the server updates its
1562 certificate, Mercurial will abort until a new fingerprint is defined.
1568 certificate, Mercurial will abort until a new fingerprint is defined.
1563 This can provide stronger security than traditional CA-based validation
1569 This can provide stronger security than traditional CA-based validation
1564 at the expense of convenience.
1570 at the expense of convenience.
1565
1571
1566 This option takes precedence over ``verifycertsfile``.
1572 This option takes precedence over ``verifycertsfile``.
1567
1573
1568 ``minimumprotocol``
1574 ``minimumprotocol``
1569 This behaves like ``minimumprotocol`` as described above except it
1575 This behaves like ``minimumprotocol`` as described above except it
1570 only applies to the host on which it is defined.
1576 only applies to the host on which it is defined.
1571
1577
1572 ``verifycertsfile``
1578 ``verifycertsfile``
1573 Path to file a containing a list of PEM encoded certificates used to
1579 Path to file a containing a list of PEM encoded certificates used to
1574 verify the server certificate. Environment variables and ``~user``
1580 verify the server certificate. Environment variables and ``~user``
1575 constructs are expanded in the filename.
1581 constructs are expanded in the filename.
1576
1582
1577 The server certificate or the certificate's certificate authority (CA)
1583 The server certificate or the certificate's certificate authority (CA)
1578 must match a certificate from this file or certificate verification
1584 must match a certificate from this file or certificate verification
1579 will fail and connections to the server will be refused.
1585 will fail and connections to the server will be refused.
1580
1586
1581 If defined, only certificates provided by this file will be used:
1587 If defined, only certificates provided by this file will be used:
1582 ``web.cacerts`` and any system/default certificates will not be
1588 ``web.cacerts`` and any system/default certificates will not be
1583 used.
1589 used.
1584
1590
1585 This option has no effect if the per-host ``fingerprints`` option
1591 This option has no effect if the per-host ``fingerprints`` option
1586 is set.
1592 is set.
1587
1593
1588 The format of the file is as follows::
1594 The format of the file is as follows::
1589
1595
1590 -----BEGIN CERTIFICATE-----
1596 -----BEGIN CERTIFICATE-----
1591 ... (certificate in base64 PEM encoding) ...
1597 ... (certificate in base64 PEM encoding) ...
1592 -----END CERTIFICATE-----
1598 -----END CERTIFICATE-----
1593 -----BEGIN CERTIFICATE-----
1599 -----BEGIN CERTIFICATE-----
1594 ... (certificate in base64 PEM encoding) ...
1600 ... (certificate in base64 PEM encoding) ...
1595 -----END CERTIFICATE-----
1601 -----END CERTIFICATE-----
1596
1602
1597 For example::
1603 For example::
1598
1604
1599 [hostsecurity]
1605 [hostsecurity]
1600 hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
1606 hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
1601 hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1607 hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
1602 hg3.example.com:fingerprints = sha256:9a:b0:dc:e2:75:ad:8a:b7:84:58:e5:1f:07:32:f1:87:e6:bd:24:22:af:b7:ce:8e:9c:b4:10:cf:b9:f4:0e:d2
1608 hg3.example.com:fingerprints = sha256:9a:b0:dc:e2:75:ad:8a:b7:84:58:e5:1f:07:32:f1:87:e6:bd:24:22:af:b7:ce:8e:9c:b4:10:cf:b9:f4:0e:d2
1603 foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem
1609 foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem
1604
1610
1605 To change the default minimum protocol version to TLS 1.2 but to allow TLS 1.1
1611 To change the default minimum protocol version to TLS 1.2 but to allow TLS 1.1
1606 when connecting to ``hg.example.com``::
1612 when connecting to ``hg.example.com``::
1607
1613
1608 [hostsecurity]
1614 [hostsecurity]
1609 minimumprotocol = tls1.2
1615 minimumprotocol = tls1.2
1610 hg.example.com:minimumprotocol = tls1.1
1616 hg.example.com:minimumprotocol = tls1.1
1611
1617
1612 ``http_proxy``
1618 ``http_proxy``
1613 --------------
1619 --------------
1614
1620
1615 Used to access web-based Mercurial repositories through a HTTP
1621 Used to access web-based Mercurial repositories through a HTTP
1616 proxy.
1622 proxy.
1617
1623
1618 ``host``
1624 ``host``
1619 Host name and (optional) port of the proxy server, for example
1625 Host name and (optional) port of the proxy server, for example
1620 "myproxy:8000".
1626 "myproxy:8000".
1621
1627
1622 ``no``
1628 ``no``
1623 Optional. Comma-separated list of host names that should bypass
1629 Optional. Comma-separated list of host names that should bypass
1624 the proxy.
1630 the proxy.
1625
1631
1626 ``passwd``
1632 ``passwd``
1627 Optional. Password to authenticate with at the proxy server.
1633 Optional. Password to authenticate with at the proxy server.
1628
1634
1629 ``user``
1635 ``user``
1630 Optional. User name to authenticate with at the proxy server.
1636 Optional. User name to authenticate with at the proxy server.
1631
1637
1632 ``always``
1638 ``always``
1633 Optional. Always use the proxy, even for localhost and any entries
1639 Optional. Always use the proxy, even for localhost and any entries
1634 in ``http_proxy.no``. (default: False)
1640 in ``http_proxy.no``. (default: False)
1635
1641
1636 ``http``
1642 ``http``
1637 --------
1643 --------
1638
1644
1639 Used to configure access to Mercurial repositories via HTTP.
1645 Used to configure access to Mercurial repositories via HTTP.
1640
1646
1641 ``timeout``
1647 ``timeout``
1642 If set, blocking operations will timeout after that many seconds.
1648 If set, blocking operations will timeout after that many seconds.
1643 (default: None)
1649 (default: None)
1644
1650
1645 ``merge``
1651 ``merge``
1646 ---------
1652 ---------
1647
1653
1648 This section specifies behavior during merges and updates.
1654 This section specifies behavior during merges and updates.
1649
1655
1650 ``checkignored``
1656 ``checkignored``
1651 Controls behavior when an ignored file on disk has the same name as a tracked
1657 Controls behavior when an ignored file on disk has the same name as a tracked
1652 file in the changeset being merged or updated to, and has different
1658 file in the changeset being merged or updated to, and has different
1653 contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``,
1659 contents. Options are ``abort``, ``warn`` and ``ignore``. With ``abort``,
1654 abort on such files. With ``warn``, warn on such files and back them up as
1660 abort on such files. With ``warn``, warn on such files and back them up as
1655 ``.orig``. With ``ignore``, don't print a warning and back them up as
1661 ``.orig``. With ``ignore``, don't print a warning and back them up as
1656 ``.orig``. (default: ``abort``)
1662 ``.orig``. (default: ``abort``)
1657
1663
1658 ``checkunknown``
1664 ``checkunknown``
1659 Controls behavior when an unknown file that isn't ignored has the same name
1665 Controls behavior when an unknown file that isn't ignored has the same name
1660 as a tracked file in the changeset being merged or updated to, and has
1666 as a tracked file in the changeset being merged or updated to, and has
1661 different contents. Similar to ``merge.checkignored``, except for files that
1667 different contents. Similar to ``merge.checkignored``, except for files that
1662 are not ignored. (default: ``abort``)
1668 are not ignored. (default: ``abort``)
1663
1669
1664 ``on-failure``
1670 ``on-failure``
1665 When set to ``continue`` (the default), the merge process attempts to
1671 When set to ``continue`` (the default), the merge process attempts to
1666 merge all unresolved files using the merge chosen tool, regardless of
1672 merge all unresolved files using the merge chosen tool, regardless of
1667 whether previous file merge attempts during the process succeeded or not.
1673 whether previous file merge attempts during the process succeeded or not.
1668 Setting this to ``prompt`` will prompt after any merge failure continue
1674 Setting this to ``prompt`` will prompt after any merge failure continue
1669 or halt the merge process. Setting this to ``halt`` will automatically
1675 or halt the merge process. Setting this to ``halt`` will automatically
1670 halt the merge process on any merge tool failure. The merge process
1676 halt the merge process on any merge tool failure. The merge process
1671 can be restarted by using the ``resolve`` command. When a merge is
1677 can be restarted by using the ``resolve`` command. When a merge is
1672 halted, the repository is left in a normal ``unresolved`` merge state.
1678 halted, the repository is left in a normal ``unresolved`` merge state.
1673 (default: ``continue``)
1679 (default: ``continue``)
1674
1680
1675 ``strict-capability-check``
1681 ``strict-capability-check``
1676 Whether capabilities of internal merge tools are checked strictly
1682 Whether capabilities of internal merge tools are checked strictly
1677 or not, while examining rules to decide merge tool to be used.
1683 or not, while examining rules to decide merge tool to be used.
1678 (default: False)
1684 (default: False)
1679
1685
1680 ``merge-patterns``
1686 ``merge-patterns``
1681 ------------------
1687 ------------------
1682
1688
1683 This section specifies merge tools to associate with particular file
1689 This section specifies merge tools to associate with particular file
1684 patterns. Tools matched here will take precedence over the default
1690 patterns. Tools matched here will take precedence over the default
1685 merge tool. Patterns are globs by default, rooted at the repository
1691 merge tool. Patterns are globs by default, rooted at the repository
1686 root.
1692 root.
1687
1693
1688 Example::
1694 Example::
1689
1695
1690 [merge-patterns]
1696 [merge-patterns]
1691 **.c = kdiff3
1697 **.c = kdiff3
1692 **.jpg = myimgmerge
1698 **.jpg = myimgmerge
1693
1699
1694 ``merge-tools``
1700 ``merge-tools``
1695 ---------------
1701 ---------------
1696
1702
1697 This section configures external merge tools to use for file-level
1703 This section configures external merge tools to use for file-level
1698 merges. This section has likely been preconfigured at install time.
1704 merges. This section has likely been preconfigured at install time.
1699 Use :hg:`config merge-tools` to check the existing configuration.
1705 Use :hg:`config merge-tools` to check the existing configuration.
1700 Also see :hg:`help merge-tools` for more details.
1706 Also see :hg:`help merge-tools` for more details.
1701
1707
1702 Example ``~/.hgrc``::
1708 Example ``~/.hgrc``::
1703
1709
1704 [merge-tools]
1710 [merge-tools]
1705 # Override stock tool location
1711 # Override stock tool location
1706 kdiff3.executable = ~/bin/kdiff3
1712 kdiff3.executable = ~/bin/kdiff3
1707 # Specify command line
1713 # Specify command line
1708 kdiff3.args = $base $local $other -o $output
1714 kdiff3.args = $base $local $other -o $output
1709 # Give higher priority
1715 # Give higher priority
1710 kdiff3.priority = 1
1716 kdiff3.priority = 1
1711
1717
1712 # Changing the priority of preconfigured tool
1718 # Changing the priority of preconfigured tool
1713 meld.priority = 0
1719 meld.priority = 0
1714
1720
1715 # Disable a preconfigured tool
1721 # Disable a preconfigured tool
1716 vimdiff.disabled = yes
1722 vimdiff.disabled = yes
1717
1723
1718 # Define new tool
1724 # Define new tool
1719 myHtmlTool.args = -m $local $other $base $output
1725 myHtmlTool.args = -m $local $other $base $output
1720 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1726 myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
1721 myHtmlTool.priority = 1
1727 myHtmlTool.priority = 1
1722
1728
1723 Supported arguments:
1729 Supported arguments:
1724
1730
1725 ``priority``
1731 ``priority``
1726 The priority in which to evaluate this tool.
1732 The priority in which to evaluate this tool.
1727 (default: 0)
1733 (default: 0)
1728
1734
1729 ``executable``
1735 ``executable``
1730 Either just the name of the executable or its pathname.
1736 Either just the name of the executable or its pathname.
1731
1737
1732 .. container:: windows
1738 .. container:: windows
1733
1739
1734 On Windows, the path can use environment variables with ${ProgramFiles}
1740 On Windows, the path can use environment variables with ${ProgramFiles}
1735 syntax.
1741 syntax.
1736
1742
1737 (default: the tool name)
1743 (default: the tool name)
1738
1744
1739 ``args``
1745 ``args``
1740 The arguments to pass to the tool executable. You can refer to the
1746 The arguments to pass to the tool executable. You can refer to the
1741 files being merged as well as the output file through these
1747 files being merged as well as the output file through these
1742 variables: ``$base``, ``$local``, ``$other``, ``$output``.
1748 variables: ``$base``, ``$local``, ``$other``, ``$output``.
1743
1749
1744 The meaning of ``$local`` and ``$other`` can vary depending on which action is
1750 The meaning of ``$local`` and ``$other`` can vary depending on which action is
1745 being performed. During an update or merge, ``$local`` represents the original
1751 being performed. During an update or merge, ``$local`` represents the original
1746 state of the file, while ``$other`` represents the commit you are updating to or
1752 state of the file, while ``$other`` represents the commit you are updating to or
1747 the commit you are merging with. During a rebase, ``$local`` represents the
1753 the commit you are merging with. During a rebase, ``$local`` represents the
1748 destination of the rebase, and ``$other`` represents the commit being rebased.
1754 destination of the rebase, and ``$other`` represents the commit being rebased.
1749
1755
1750 Some operations define custom labels to assist with identifying the revisions,
1756 Some operations define custom labels to assist with identifying the revisions,
1751 accessible via ``$labellocal``, ``$labelother``, and ``$labelbase``. If custom
1757 accessible via ``$labellocal``, ``$labelother``, and ``$labelbase``. If custom
1752 labels are not available, these will be ``local``, ``other``, and ``base``,
1758 labels are not available, these will be ``local``, ``other``, and ``base``,
1753 respectively.
1759 respectively.
1754 (default: ``$local $base $other``)
1760 (default: ``$local $base $other``)
1755
1761
1756 ``premerge``
1762 ``premerge``
1757 Attempt to run internal non-interactive 3-way merge tool before
1763 Attempt to run internal non-interactive 3-way merge tool before
1758 launching external tool. Options are ``true``, ``false``, ``keep``,
1764 launching external tool. Options are ``true``, ``false``, ``keep``,
1759 ``keep-merge3``, or ``keep-mergediff`` (experimental). The ``keep`` option
1765 ``keep-merge3``, or ``keep-mergediff`` (experimental). The ``keep`` option
1760 will leave markers in the file if the premerge fails. The ``keep-merge3``
1766 will leave markers in the file if the premerge fails. The ``keep-merge3``
1761 will do the same but include information about the base of the merge in the
1767 will do the same but include information about the base of the merge in the
1762 marker (see internal :merge3 in :hg:`help merge-tools`). The
1768 marker (see internal :merge3 in :hg:`help merge-tools`). The
1763 ``keep-mergediff`` option is similar but uses a different marker style
1769 ``keep-mergediff`` option is similar but uses a different marker style
1764 (see internal :merge3 in :hg:`help merge-tools`). (default: True)
1770 (see internal :merge3 in :hg:`help merge-tools`). (default: True)
1765
1771
1766 ``binary``
1772 ``binary``
1767 This tool can merge binary files. (default: False, unless tool
1773 This tool can merge binary files. (default: False, unless tool
1768 was selected by file pattern match)
1774 was selected by file pattern match)
1769
1775
1770 ``symlink``
1776 ``symlink``
1771 This tool can merge symlinks. (default: False)
1777 This tool can merge symlinks. (default: False)
1772
1778
1773 ``check``
1779 ``check``
1774 A list of merge success-checking options:
1780 A list of merge success-checking options:
1775
1781
1776 ``changed``
1782 ``changed``
1777 Ask whether merge was successful when the merged file shows no changes.
1783 Ask whether merge was successful when the merged file shows no changes.
1778 ``conflicts``
1784 ``conflicts``
1779 Check whether there are conflicts even though the tool reported success.
1785 Check whether there are conflicts even though the tool reported success.
1780 ``prompt``
1786 ``prompt``
1781 Always prompt for merge success, regardless of success reported by tool.
1787 Always prompt for merge success, regardless of success reported by tool.
1782
1788
1783 ``fixeol``
1789 ``fixeol``
1784 Attempt to fix up EOL changes caused by the merge tool.
1790 Attempt to fix up EOL changes caused by the merge tool.
1785 (default: False)
1791 (default: False)
1786
1792
1787 ``gui``
1793 ``gui``
1788 This tool requires a graphical interface to run. (default: False)
1794 This tool requires a graphical interface to run. (default: False)
1789
1795
1790 ``mergemarkers``
1796 ``mergemarkers``
1791 Controls whether the labels passed via ``$labellocal``, ``$labelother``, and
1797 Controls whether the labels passed via ``$labellocal``, ``$labelother``, and
1792 ``$labelbase`` are ``detailed`` (respecting ``mergemarkertemplate``) or
1798 ``$labelbase`` are ``detailed`` (respecting ``mergemarkertemplate``) or
1793 ``basic``. If ``premerge`` is ``keep`` or ``keep-merge3``, the conflict
1799 ``basic``. If ``premerge`` is ``keep`` or ``keep-merge3``, the conflict
1794 markers generated during premerge will be ``detailed`` if either this option or
1800 markers generated during premerge will be ``detailed`` if either this option or
1795 the corresponding option in the ``[ui]`` section is ``detailed``.
1801 the corresponding option in the ``[ui]`` section is ``detailed``.
1796 (default: ``basic``)
1802 (default: ``basic``)
1797
1803
1798 ``mergemarkertemplate``
1804 ``mergemarkertemplate``
1799 This setting can be used to override ``mergemarker`` from the
1805 This setting can be used to override ``mergemarker`` from the
1800 ``[command-templates]`` section on a per-tool basis; this applies to the
1806 ``[command-templates]`` section on a per-tool basis; this applies to the
1801 ``$label``-prefixed variables and to the conflict markers that are generated
1807 ``$label``-prefixed variables and to the conflict markers that are generated
1802 if ``premerge`` is ``keep` or ``keep-merge3``. See the corresponding variable
1808 if ``premerge`` is ``keep` or ``keep-merge3``. See the corresponding variable
1803 in ``[ui]`` for more information.
1809 in ``[ui]`` for more information.
1804
1810
1805 .. container:: windows
1811 .. container:: windows
1806
1812
1807 ``regkey``
1813 ``regkey``
1808 Windows registry key which describes install location of this
1814 Windows registry key which describes install location of this
1809 tool. Mercurial will search for this key first under
1815 tool. Mercurial will search for this key first under
1810 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1816 ``HKEY_CURRENT_USER`` and then under ``HKEY_LOCAL_MACHINE``.
1811 (default: None)
1817 (default: None)
1812
1818
1813 ``regkeyalt``
1819 ``regkeyalt``
1814 An alternate Windows registry key to try if the first key is not
1820 An alternate Windows registry key to try if the first key is not
1815 found. The alternate key uses the same ``regname`` and ``regappend``
1821 found. The alternate key uses the same ``regname`` and ``regappend``
1816 semantics of the primary key. The most common use for this key
1822 semantics of the primary key. The most common use for this key
1817 is to search for 32bit applications on 64bit operating systems.
1823 is to search for 32bit applications on 64bit operating systems.
1818 (default: None)
1824 (default: None)
1819
1825
1820 ``regname``
1826 ``regname``
1821 Name of value to read from specified registry key.
1827 Name of value to read from specified registry key.
1822 (default: the unnamed (default) value)
1828 (default: the unnamed (default) value)
1823
1829
1824 ``regappend``
1830 ``regappend``
1825 String to append to the value read from the registry, typically
1831 String to append to the value read from the registry, typically
1826 the executable name of the tool.
1832 the executable name of the tool.
1827 (default: None)
1833 (default: None)
1828
1834
1829 ``pager``
1835 ``pager``
1830 ---------
1836 ---------
1831
1837
1832 Setting used to control when to paginate and with what external tool. See
1838 Setting used to control when to paginate and with what external tool. See
1833 :hg:`help pager` for details.
1839 :hg:`help pager` for details.
1834
1840
1835 ``pager``
1841 ``pager``
1836 Define the external tool used as pager.
1842 Define the external tool used as pager.
1837
1843
1838 If no pager is set, Mercurial uses the environment variable $PAGER.
1844 If no pager is set, Mercurial uses the environment variable $PAGER.
1839 If neither pager.pager, nor $PAGER is set, a default pager will be
1845 If neither pager.pager, nor $PAGER is set, a default pager will be
1840 used, typically `less` on Unix and `more` on Windows. Example::
1846 used, typically `less` on Unix and `more` on Windows. Example::
1841
1847
1842 [pager]
1848 [pager]
1843 pager = less -FRX
1849 pager = less -FRX
1844
1850
1845 ``ignore``
1851 ``ignore``
1846 List of commands to disable the pager for. Example::
1852 List of commands to disable the pager for. Example::
1847
1853
1848 [pager]
1854 [pager]
1849 ignore = version, help, update
1855 ignore = version, help, update
1850
1856
1851 ``patch``
1857 ``patch``
1852 ---------
1858 ---------
1853
1859
1854 Settings used when applying patches, for instance through the 'import'
1860 Settings used when applying patches, for instance through the 'import'
1855 command or with Mercurial Queues extension.
1861 command or with Mercurial Queues extension.
1856
1862
1857 ``eol``
1863 ``eol``
1858 When set to 'strict' patch content and patched files end of lines
1864 When set to 'strict' patch content and patched files end of lines
1859 are preserved. When set to ``lf`` or ``crlf``, both files end of
1865 are preserved. When set to ``lf`` or ``crlf``, both files end of
1860 lines are ignored when patching and the result line endings are
1866 lines are ignored when patching and the result line endings are
1861 normalized to either LF (Unix) or CRLF (Windows). When set to
1867 normalized to either LF (Unix) or CRLF (Windows). When set to
1862 ``auto``, end of lines are again ignored while patching but line
1868 ``auto``, end of lines are again ignored while patching but line
1863 endings in patched files are normalized to their original setting
1869 endings in patched files are normalized to their original setting
1864 on a per-file basis. If target file does not exist or has no end
1870 on a per-file basis. If target file does not exist or has no end
1865 of line, patch line endings are preserved.
1871 of line, patch line endings are preserved.
1866 (default: strict)
1872 (default: strict)
1867
1873
1868 ``fuzz``
1874 ``fuzz``
1869 The number of lines of 'fuzz' to allow when applying patches. This
1875 The number of lines of 'fuzz' to allow when applying patches. This
1870 controls how much context the patcher is allowed to ignore when
1876 controls how much context the patcher is allowed to ignore when
1871 trying to apply a patch.
1877 trying to apply a patch.
1872 (default: 2)
1878 (default: 2)
1873
1879
1874 ``paths``
1880 ``paths``
1875 ---------
1881 ---------
1876
1882
1877 Assigns symbolic names and behavior to repositories.
1883 Assigns symbolic names and behavior to repositories.
1878
1884
1879 Options are symbolic names defining the URL or directory that is the
1885 Options are symbolic names defining the URL or directory that is the
1880 location of the repository. Example::
1886 location of the repository. Example::
1881
1887
1882 [paths]
1888 [paths]
1883 my_server = https://example.com/my_repo
1889 my_server = https://example.com/my_repo
1884 local_path = /home/me/repo
1890 local_path = /home/me/repo
1885
1891
1886 These symbolic names can be used from the command line. To pull
1892 These symbolic names can be used from the command line. To pull
1887 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1893 from ``my_server``: :hg:`pull my_server`. To push to ``local_path``:
1888 :hg:`push local_path`. You can check :hg:`help urls` for details about
1894 :hg:`push local_path`. You can check :hg:`help urls` for details about
1889 valid URLs.
1895 valid URLs.
1890
1896
1891 Options containing colons (``:``) denote sub-options that can influence
1897 Options containing colons (``:``) denote sub-options that can influence
1892 behavior for that specific path. Example::
1898 behavior for that specific path. Example::
1893
1899
1894 [paths]
1900 [paths]
1895 my_server = https://example.com/my_path
1901 my_server = https://example.com/my_path
1896 my_server:pushurl = ssh://example.com/my_path
1902 my_server:pushurl = ssh://example.com/my_path
1897
1903
1898 Paths using the `path://otherpath` scheme will inherit the sub-options value from
1904 Paths using the `path://otherpath` scheme will inherit the sub-options value from
1899 the path they point to.
1905 the path they point to.
1900
1906
1901 The following sub-options can be defined:
1907 The following sub-options can be defined:
1902
1908
1903 ``multi-urls``
1909 ``multi-urls``
1904 A boolean option. When enabled the value of the `[paths]` entry will be
1910 A boolean option. When enabled the value of the `[paths]` entry will be
1905 parsed as a list and the alias will resolve to multiple destination. If some
1911 parsed as a list and the alias will resolve to multiple destination. If some
1906 of the list entry use the `path://` syntax, the suboption will be inherited
1912 of the list entry use the `path://` syntax, the suboption will be inherited
1907 individually.
1913 individually.
1908
1914
1909 ``pushurl``
1915 ``pushurl``
1910 The URL to use for push operations. If not defined, the location
1916 The URL to use for push operations. If not defined, the location
1911 defined by the path's main entry is used.
1917 defined by the path's main entry is used.
1912
1918
1913 ``pushrev``
1919 ``pushrev``
1914 A revset defining which revisions to push by default.
1920 A revset defining which revisions to push by default.
1915
1921
1916 When :hg:`push` is executed without a ``-r`` argument, the revset
1922 When :hg:`push` is executed without a ``-r`` argument, the revset
1917 defined by this sub-option is evaluated to determine what to push.
1923 defined by this sub-option is evaluated to determine what to push.
1918
1924
1919 For example, a value of ``.`` will push the working directory's
1925 For example, a value of ``.`` will push the working directory's
1920 revision by default.
1926 revision by default.
1921
1927
1922 Revsets specifying bookmarks will not result in the bookmark being
1928 Revsets specifying bookmarks will not result in the bookmark being
1923 pushed.
1929 pushed.
1924
1930
1925 ``bookmarks.mode``
1931 ``bookmarks.mode``
1926 How bookmark will be dealt during the exchange. It support the following value
1932 How bookmark will be dealt during the exchange. It support the following value
1927
1933
1928 - ``default``: the default behavior, local and remote bookmarks are "merged"
1934 - ``default``: the default behavior, local and remote bookmarks are "merged"
1929 on push/pull.
1935 on push/pull.
1930
1936
1931 - ``mirror``: when pulling, replace local bookmarks by remote bookmarks. This
1937 - ``mirror``: when pulling, replace local bookmarks by remote bookmarks. This
1932 is useful to replicate a repository, or as an optimization.
1938 is useful to replicate a repository, or as an optimization.
1933
1939
1934 - ``ignore``: ignore bookmarks during exchange.
1940 - ``ignore``: ignore bookmarks during exchange.
1935 (This currently only affect pulling)
1941 (This currently only affect pulling)
1936
1942
1937 .. container:: verbose
1943 .. container:: verbose
1938
1944
1939 ``pulled-delta-reuse-policy``
1945 ``pulled-delta-reuse-policy``
1940 Control the policy regarding deltas sent by the remote during pulls.
1946 Control the policy regarding deltas sent by the remote during pulls.
1941
1947
1942 This is an advanced option that non-admin users should not need to understand
1948 This is an advanced option that non-admin users should not need to understand
1943 or set. This option can be used to speed up pulls from trusted central
1949 or set. This option can be used to speed up pulls from trusted central
1944 servers, or to fix-up deltas from older servers.
1950 servers, or to fix-up deltas from older servers.
1945
1951
1946 It supports the following values:
1952 It supports the following values:
1947
1953
1948 - ``default``: use the policy defined by
1954 - ``default``: use the policy defined by
1949 `storage.revlog.reuse-external-delta-parent`,
1955 `storage.revlog.reuse-external-delta-parent`,
1950
1956
1951 - ``no-reuse``: start a new optimal delta search for each new revision we add
1957 - ``no-reuse``: start a new optimal delta search for each new revision we add
1952 to the repository. The deltas from the server will be reused when the base
1958 to the repository. The deltas from the server will be reused when the base
1953 it applies to is tested (this can be frequent if that base is the one and
1959 it applies to is tested (this can be frequent if that base is the one and
1954 unique parent of that revision). This can significantly slowdown pulls but
1960 unique parent of that revision). This can significantly slowdown pulls but
1955 will result in an optimized storage space if the remote peer is sending poor
1961 will result in an optimized storage space if the remote peer is sending poor
1956 quality deltas.
1962 quality deltas.
1957
1963
1958 - ``try-base``: try to reuse the deltas from the remote peer as long as they
1964 - ``try-base``: try to reuse the deltas from the remote peer as long as they
1959 create a valid delta-chain in the local repository. This speeds up the
1965 create a valid delta-chain in the local repository. This speeds up the
1960 unbundling process, but can result in sub-optimal storage space if the
1966 unbundling process, but can result in sub-optimal storage space if the
1961 remote peer is sending poor quality deltas.
1967 remote peer is sending poor quality deltas.
1962
1968
1963 - ``forced``: the deltas from the peer will be reused in all cases, even if
1969 - ``forced``: the deltas from the peer will be reused in all cases, even if
1964 the resulting delta-chain is "invalid". This setting will ensure the bundle
1970 the resulting delta-chain is "invalid". This setting will ensure the bundle
1965 is applied at minimal CPU cost, but it can result in longer delta chains
1971 is applied at minimal CPU cost, but it can result in longer delta chains
1966 being created on the client, making revisions potentially slower to access
1972 being created on the client, making revisions potentially slower to access
1967 in the future. If you think you need this option, you should make sure you
1973 in the future. If you think you need this option, you should make sure you
1968 are also talking to the Mercurial developer community to get confirmation.
1974 are also talking to the Mercurial developer community to get confirmation.
1969
1975
1970 See `hg help config.storage.revlog.reuse-external-delta-parent` for a similar
1976 See `hg help config.storage.revlog.reuse-external-delta-parent` for a similar
1971 global option. That option defines the behavior of `default`.
1977 global option. That option defines the behavior of `default`.
1972
1978
1973 The following special named paths exist:
1979 The following special named paths exist:
1974
1980
1975 ``default``
1981 ``default``
1976 The URL or directory to use when no source or remote is specified.
1982 The URL or directory to use when no source or remote is specified.
1977
1983
1978 :hg:`clone` will automatically define this path to the location the
1984 :hg:`clone` will automatically define this path to the location the
1979 repository was cloned from.
1985 repository was cloned from.
1980
1986
1981 ``default-push``
1987 ``default-push``
1982 (deprecated) The URL or directory for the default :hg:`push` location.
1988 (deprecated) The URL or directory for the default :hg:`push` location.
1983 ``default:pushurl`` should be used instead.
1989 ``default:pushurl`` should be used instead.
1984
1990
1985 ``phases``
1991 ``phases``
1986 ----------
1992 ----------
1987
1993
1988 Specifies default handling of phases. See :hg:`help phases` for more
1994 Specifies default handling of phases. See :hg:`help phases` for more
1989 information about working with phases.
1995 information about working with phases.
1990
1996
1991 ``publish``
1997 ``publish``
1992 Controls draft phase behavior when working as a server. When true,
1998 Controls draft phase behavior when working as a server. When true,
1993 pushed changesets are set to public in both client and server and
1999 pushed changesets are set to public in both client and server and
1994 pulled or cloned changesets are set to public in the client.
2000 pulled or cloned changesets are set to public in the client.
1995 (default: True)
2001 (default: True)
1996
2002
1997 ``new-commit``
2003 ``new-commit``
1998 Phase of newly-created commits.
2004 Phase of newly-created commits.
1999 (default: draft)
2005 (default: draft)
2000
2006
2001 ``checksubrepos``
2007 ``checksubrepos``
2002 Check the phase of the current revision of each subrepository. Allowed
2008 Check the phase of the current revision of each subrepository. Allowed
2003 values are "ignore", "follow" and "abort". For settings other than
2009 values are "ignore", "follow" and "abort". For settings other than
2004 "ignore", the phase of the current revision of each subrepository is
2010 "ignore", the phase of the current revision of each subrepository is
2005 checked before committing the parent repository. If any of those phases is
2011 checked before committing the parent repository. If any of those phases is
2006 greater than the phase of the parent repository (e.g. if a subrepo is in a
2012 greater than the phase of the parent repository (e.g. if a subrepo is in a
2007 "secret" phase while the parent repo is in "draft" phase), the commit is
2013 "secret" phase while the parent repo is in "draft" phase), the commit is
2008 either aborted (if checksubrepos is set to "abort") or the higher phase is
2014 either aborted (if checksubrepos is set to "abort") or the higher phase is
2009 used for the parent repository commit (if set to "follow").
2015 used for the parent repository commit (if set to "follow").
2010 (default: follow)
2016 (default: follow)
2011
2017
2012
2018
2013 ``profiling``
2019 ``profiling``
2014 -------------
2020 -------------
2015
2021
2016 Specifies profiling type, format, and file output. Two profilers are
2022 Specifies profiling type, format, and file output. Two profilers are
2017 supported: an instrumenting profiler (named ``ls``), and a sampling
2023 supported: an instrumenting profiler (named ``ls``), and a sampling
2018 profiler (named ``stat``).
2024 profiler (named ``stat``).
2019
2025
2020 In this section description, 'profiling data' stands for the raw data
2026 In this section description, 'profiling data' stands for the raw data
2021 collected during profiling, while 'profiling report' stands for a
2027 collected during profiling, while 'profiling report' stands for a
2022 statistical text report generated from the profiling data.
2028 statistical text report generated from the profiling data.
2023
2029
2024 ``enabled``
2030 ``enabled``
2025 Enable the profiler.
2031 Enable the profiler.
2026 (default: false)
2032 (default: false)
2027
2033
2028 This is equivalent to passing ``--profile`` on the command line.
2034 This is equivalent to passing ``--profile`` on the command line.
2029
2035
2030 ``type``
2036 ``type``
2031 The type of profiler to use.
2037 The type of profiler to use.
2032 (default: stat)
2038 (default: stat)
2033
2039
2034 ``ls``
2040 ``ls``
2035 Use Python's built-in instrumenting profiler. This profiler
2041 Use Python's built-in instrumenting profiler. This profiler
2036 works on all platforms, but each line number it reports is the
2042 works on all platforms, but each line number it reports is the
2037 first line of a function. This restriction makes it difficult to
2043 first line of a function. This restriction makes it difficult to
2038 identify the expensive parts of a non-trivial function.
2044 identify the expensive parts of a non-trivial function.
2039 ``stat``
2045 ``stat``
2040 Use a statistical profiler, statprof. This profiler is most
2046 Use a statistical profiler, statprof. This profiler is most
2041 useful for profiling commands that run for longer than about 0.1
2047 useful for profiling commands that run for longer than about 0.1
2042 seconds.
2048 seconds.
2043
2049
2044 ``format``
2050 ``format``
2045 Profiling format. Specific to the ``ls`` instrumenting profiler.
2051 Profiling format. Specific to the ``ls`` instrumenting profiler.
2046 (default: text)
2052 (default: text)
2047
2053
2048 ``text``
2054 ``text``
2049 Generate a profiling report. When saving to a file, it should be
2055 Generate a profiling report. When saving to a file, it should be
2050 noted that only the report is saved, and the profiling data is
2056 noted that only the report is saved, and the profiling data is
2051 not kept.
2057 not kept.
2052 ``kcachegrind``
2058 ``kcachegrind``
2053 Format profiling data for kcachegrind use: when saving to a
2059 Format profiling data for kcachegrind use: when saving to a
2054 file, the generated file can directly be loaded into
2060 file, the generated file can directly be loaded into
2055 kcachegrind.
2061 kcachegrind.
2056
2062
2057 ``statformat``
2063 ``statformat``
2058 Profiling format for the ``stat`` profiler.
2064 Profiling format for the ``stat`` profiler.
2059 (default: hotpath)
2065 (default: hotpath)
2060
2066
2061 ``hotpath``
2067 ``hotpath``
2062 Show a tree-based display containing the hot path of execution (where
2068 Show a tree-based display containing the hot path of execution (where
2063 most time was spent).
2069 most time was spent).
2064 ``bymethod``
2070 ``bymethod``
2065 Show a table of methods ordered by how frequently they are active.
2071 Show a table of methods ordered by how frequently they are active.
2066 ``byline``
2072 ``byline``
2067 Show a table of lines in files ordered by how frequently they are active.
2073 Show a table of lines in files ordered by how frequently they are active.
2068 ``json``
2074 ``json``
2069 Render profiling data as JSON.
2075 Render profiling data as JSON.
2070
2076
2071 ``freq``
2077 ``freq``
2072 Sampling frequency. Specific to the ``stat`` sampling profiler.
2078 Sampling frequency. Specific to the ``stat`` sampling profiler.
2073 (default: 1000)
2079 (default: 1000)
2074
2080
2075 ``output``
2081 ``output``
2076 File path where profiling data or report should be saved. If the
2082 File path where profiling data or report should be saved. If the
2077 file exists, it is replaced. (default: None, data is printed on
2083 file exists, it is replaced. (default: None, data is printed on
2078 stderr)
2084 stderr)
2079
2085
2080 ``sort``
2086 ``sort``
2081 Sort field. Specific to the ``ls`` instrumenting profiler.
2087 Sort field. Specific to the ``ls`` instrumenting profiler.
2082 One of ``callcount``, ``reccallcount``, ``totaltime`` and
2088 One of ``callcount``, ``reccallcount``, ``totaltime`` and
2083 ``inlinetime``.
2089 ``inlinetime``.
2084 (default: inlinetime)
2090 (default: inlinetime)
2085
2091
2086 ``time-track``
2092 ``time-track``
2087 Control if the stat profiler track ``cpu`` or ``real`` time.
2093 Control if the stat profiler track ``cpu`` or ``real`` time.
2088 (default: ``cpu`` on Windows, otherwise ``real``)
2094 (default: ``cpu`` on Windows, otherwise ``real``)
2089
2095
2090 ``limit``
2096 ``limit``
2091 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
2097 Number of lines to show. Specific to the ``ls`` instrumenting profiler.
2092 (default: 30)
2098 (default: 30)
2093
2099
2094 ``nested``
2100 ``nested``
2095 Show at most this number of lines of drill-down info after each main entry.
2101 Show at most this number of lines of drill-down info after each main entry.
2096 This can help explain the difference between Total and Inline.
2102 This can help explain the difference between Total and Inline.
2097 Specific to the ``ls`` instrumenting profiler.
2103 Specific to the ``ls`` instrumenting profiler.
2098 (default: 0)
2104 (default: 0)
2099
2105
2100 ``showmin``
2106 ``showmin``
2101 Minimum fraction of samples an entry must have for it to be displayed.
2107 Minimum fraction of samples an entry must have for it to be displayed.
2102 Can be specified as a float between ``0.0`` and ``1.0`` or can have a
2108 Can be specified as a float between ``0.0`` and ``1.0`` or can have a
2103 ``%`` afterwards to allow values up to ``100``. e.g. ``5%``.
2109 ``%`` afterwards to allow values up to ``100``. e.g. ``5%``.
2104
2110
2105 Only used by the ``stat`` profiler.
2111 Only used by the ``stat`` profiler.
2106
2112
2107 For the ``hotpath`` format, default is ``0.05``.
2113 For the ``hotpath`` format, default is ``0.05``.
2108 For the ``chrome`` format, default is ``0.005``.
2114 For the ``chrome`` format, default is ``0.005``.
2109
2115
2110 The option is unused on other formats.
2116 The option is unused on other formats.
2111
2117
2112 ``showmax``
2118 ``showmax``
2113 Maximum fraction of samples an entry can have before it is ignored in
2119 Maximum fraction of samples an entry can have before it is ignored in
2114 display. Values format is the same as ``showmin``.
2120 display. Values format is the same as ``showmin``.
2115
2121
2116 Only used by the ``stat`` profiler.
2122 Only used by the ``stat`` profiler.
2117
2123
2118 For the ``chrome`` format, default is ``0.999``.
2124 For the ``chrome`` format, default is ``0.999``.
2119
2125
2120 The option is unused on other formats.
2126 The option is unused on other formats.
2121
2127
2122 ``showtime``
2128 ``showtime``
2123 Show time taken as absolute durations, in addition to percentages.
2129 Show time taken as absolute durations, in addition to percentages.
2124 Only used by the ``hotpath`` format.
2130 Only used by the ``hotpath`` format.
2125 (default: true)
2131 (default: true)
2126
2132
2127 ``progress``
2133 ``progress``
2128 ------------
2134 ------------
2129
2135
2130 Mercurial commands can draw progress bars that are as informative as
2136 Mercurial commands can draw progress bars that are as informative as
2131 possible. Some progress bars only offer indeterminate information, while others
2137 possible. Some progress bars only offer indeterminate information, while others
2132 have a definite end point.
2138 have a definite end point.
2133
2139
2134 ``debug``
2140 ``debug``
2135 Whether to print debug info when updating the progress bar. (default: False)
2141 Whether to print debug info when updating the progress bar. (default: False)
2136
2142
2137 ``delay``
2143 ``delay``
2138 Number of seconds (float) before showing the progress bar. (default: 3)
2144 Number of seconds (float) before showing the progress bar. (default: 3)
2139
2145
2140 ``changedelay``
2146 ``changedelay``
2141 Minimum delay before showing a new topic. When set to less than 3 * refresh,
2147 Minimum delay before showing a new topic. When set to less than 3 * refresh,
2142 that value will be used instead. (default: 1)
2148 that value will be used instead. (default: 1)
2143
2149
2144 ``estimateinterval``
2150 ``estimateinterval``
2145 Maximum sampling interval in seconds for speed and estimated time
2151 Maximum sampling interval in seconds for speed and estimated time
2146 calculation. (default: 60)
2152 calculation. (default: 60)
2147
2153
2148 ``refresh``
2154 ``refresh``
2149 Time in seconds between refreshes of the progress bar. (default: 0.1)
2155 Time in seconds between refreshes of the progress bar. (default: 0.1)
2150
2156
2151 ``format``
2157 ``format``
2152 Format of the progress bar.
2158 Format of the progress bar.
2153
2159
2154 Valid entries for the format field are ``topic``, ``bar``, ``number``,
2160 Valid entries for the format field are ``topic``, ``bar``, ``number``,
2155 ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the
2161 ``unit``, ``estimate``, ``speed``, and ``item``. ``item`` defaults to the
2156 last 20 characters of the item, but this can be changed by adding either
2162 last 20 characters of the item, but this can be changed by adding either
2157 ``-<num>`` which would take the last num characters, or ``+<num>`` for the
2163 ``-<num>`` which would take the last num characters, or ``+<num>`` for the
2158 first num characters.
2164 first num characters.
2159
2165
2160 (default: topic bar number estimate)
2166 (default: topic bar number estimate)
2161
2167
2162 ``width``
2168 ``width``
2163 If set, the maximum width of the progress information (that is, min(width,
2169 If set, the maximum width of the progress information (that is, min(width,
2164 term width) will be used).
2170 term width) will be used).
2165
2171
2166 ``clear-complete``
2172 ``clear-complete``
2167 Clear the progress bar after it's done. (default: True)
2173 Clear the progress bar after it's done. (default: True)
2168
2174
2169 ``disable``
2175 ``disable``
2170 If true, don't show a progress bar.
2176 If true, don't show a progress bar.
2171
2177
2172 ``assume-tty``
2178 ``assume-tty``
2173 If true, ALWAYS show a progress bar, unless disable is given.
2179 If true, ALWAYS show a progress bar, unless disable is given.
2174
2180
2175 ``rebase``
2181 ``rebase``
2176 ----------
2182 ----------
2177
2183
2178 ``evolution.allowdivergence``
2184 ``evolution.allowdivergence``
2179 Default to False, when True allow creating divergence when performing
2185 Default to False, when True allow creating divergence when performing
2180 rebase of obsolete changesets.
2186 rebase of obsolete changesets.
2181
2187
2182 ``revsetalias``
2188 ``revsetalias``
2183 ---------------
2189 ---------------
2184
2190
2185 Alias definitions for revsets. See :hg:`help revsets` for details.
2191 Alias definitions for revsets. See :hg:`help revsets` for details.
2186
2192
2187 ``rewrite``
2193 ``rewrite``
2188 -----------
2194 -----------
2189
2195
2190 ``backup-bundle``
2196 ``backup-bundle``
2191 Whether to save stripped changesets to a bundle file. (default: True)
2197 Whether to save stripped changesets to a bundle file. (default: True)
2192
2198
2193 ``update-timestamp``
2199 ``update-timestamp``
2194 If true, updates the date and time of the changeset to current. It is only
2200 If true, updates the date and time of the changeset to current. It is only
2195 applicable for `hg amend`, `hg commit --amend` and `hg uncommit` in the
2201 applicable for `hg amend`, `hg commit --amend` and `hg uncommit` in the
2196 current version.
2202 current version.
2197
2203
2198 ``empty-successor``
2204 ``empty-successor``
2199
2205
2200 Control what happens with empty successors that are the result of rewrite
2206 Control what happens with empty successors that are the result of rewrite
2201 operations. If set to ``skip``, the successor is not created. If set to
2207 operations. If set to ``skip``, the successor is not created. If set to
2202 ``keep``, the empty successor is created and kept.
2208 ``keep``, the empty successor is created and kept.
2203
2209
2204 Currently, only the rebase and absorb commands consider this configuration.
2210 Currently, only the rebase and absorb commands consider this configuration.
2205 (EXPERIMENTAL)
2211 (EXPERIMENTAL)
2206
2212
2207 ``rhg``
2213 ``rhg``
2208 -------
2214 -------
2209
2215
2210 The pure Rust fast-path for Mercurial. See `rust/README.rst` in the Mercurial repository.
2216 The pure Rust fast-path for Mercurial. See `rust/README.rst` in the Mercurial repository.
2211
2217
2212 ``fallback-executable``
2218 ``fallback-executable``
2213 Path to the executable to run in a sub-process when falling back to
2219 Path to the executable to run in a sub-process when falling back to
2214 another implementation of Mercurial.
2220 another implementation of Mercurial.
2215
2221
2216 ``fallback-immediately``
2222 ``fallback-immediately``
2217 Fall back to ``fallback-executable`` as soon as possible, regardless of
2223 Fall back to ``fallback-executable`` as soon as possible, regardless of
2218 the `rhg.on-unsupported` configuration. Useful for debugging, for example to
2224 the `rhg.on-unsupported` configuration. Useful for debugging, for example to
2219 bypass `rhg` if the deault `hg` points to `rhg`.
2225 bypass `rhg` if the deault `hg` points to `rhg`.
2220
2226
2221 Note that because this requires loading the configuration, it is possible
2227 Note that because this requires loading the configuration, it is possible
2222 that `rhg` error out before being able to fall back.
2228 that `rhg` error out before being able to fall back.
2223
2229
2224 ``ignored-extensions``
2230 ``ignored-extensions``
2225 Controls which extensions should be ignored by `rhg`. By default, `rhg`
2231 Controls which extensions should be ignored by `rhg`. By default, `rhg`
2226 triggers the `rhg.on-unsupported` behavior any unsupported extensions.
2232 triggers the `rhg.on-unsupported` behavior any unsupported extensions.
2227 Users can disable that behavior when they know that a given extension
2233 Users can disable that behavior when they know that a given extension
2228 does not need support from `rhg`.
2234 does not need support from `rhg`.
2229
2235
2230 Expects a list of extension names, or ``*`` to ignore all extensions.
2236 Expects a list of extension names, or ``*`` to ignore all extensions.
2231
2237
2232 Note: ``*:<suboption>`` is also a valid extension name for this
2238 Note: ``*:<suboption>`` is also a valid extension name for this
2233 configuration option.
2239 configuration option.
2234 As of this writing, the only valid "global" suboption is ``required``.
2240 As of this writing, the only valid "global" suboption is ``required``.
2235
2241
2236 ``on-unsupported``
2242 ``on-unsupported``
2237 Controls the behavior of `rhg` when detecting unsupported features.
2243 Controls the behavior of `rhg` when detecting unsupported features.
2238
2244
2239 Possible values are `abort` (default), `abort-silent` and `fallback`.
2245 Possible values are `abort` (default), `abort-silent` and `fallback`.
2240
2246
2241 ``abort``
2247 ``abort``
2242 Print an error message describing what feature is not supported,
2248 Print an error message describing what feature is not supported,
2243 and exit with code 252
2249 and exit with code 252
2244
2250
2245 ``abort-silent``
2251 ``abort-silent``
2246 Silently exit with code 252
2252 Silently exit with code 252
2247
2253
2248 ``fallback``
2254 ``fallback``
2249 Try running the fallback executable with the same parameters
2255 Try running the fallback executable with the same parameters
2250 (and trace the fallback reason, use `RUST_LOG=trace` to see).
2256 (and trace the fallback reason, use `RUST_LOG=trace` to see).
2251
2257
2252 ``share``
2258 ``share``
2253 ---------
2259 ---------
2254
2260
2255 ``safe-mismatch.source-safe``
2261 ``safe-mismatch.source-safe``
2256 Controls what happens when the shared repository does not use the
2262 Controls what happens when the shared repository does not use the
2257 share-safe mechanism but its source repository does.
2263 share-safe mechanism but its source repository does.
2258
2264
2259 Possible values are `abort` (default), `allow`, `upgrade-abort` and
2265 Possible values are `abort` (default), `allow`, `upgrade-abort` and
2260 `upgrade-allow`.
2266 `upgrade-allow`.
2261
2267
2262 ``abort``
2268 ``abort``
2263 Disallows running any command and aborts
2269 Disallows running any command and aborts
2264 ``allow``
2270 ``allow``
2265 Respects the feature presence in the share source
2271 Respects the feature presence in the share source
2266 ``upgrade-abort``
2272 ``upgrade-abort``
2267 Tries to upgrade the share to use share-safe; if it fails, aborts
2273 Tries to upgrade the share to use share-safe; if it fails, aborts
2268 ``upgrade-allow``
2274 ``upgrade-allow``
2269 Tries to upgrade the share; if it fails, continue by
2275 Tries to upgrade the share; if it fails, continue by
2270 respecting the share source setting
2276 respecting the share source setting
2271
2277
2272 Check :hg:`help config.format.use-share-safe` for details about the
2278 Check :hg:`help config.format.use-share-safe` for details about the
2273 share-safe feature.
2279 share-safe feature.
2274
2280
2275 ``safe-mismatch.source-safe:verbose-upgrade``
2281 ``safe-mismatch.source-safe:verbose-upgrade``
2276 Display a message when upgrading, (default: True)
2282 Display a message when upgrading, (default: True)
2277
2283
2278 ``safe-mismatch.source-safe.warn``
2284 ``safe-mismatch.source-safe.warn``
2279 Shows a warning on operations if the shared repository does not use
2285 Shows a warning on operations if the shared repository does not use
2280 share-safe, but the source repository does.
2286 share-safe, but the source repository does.
2281 (default: True)
2287 (default: True)
2282
2288
2283 ``safe-mismatch.source-not-safe``
2289 ``safe-mismatch.source-not-safe``
2284 Controls what happens when the shared repository uses the share-safe
2290 Controls what happens when the shared repository uses the share-safe
2285 mechanism but its source does not.
2291 mechanism but its source does not.
2286
2292
2287 Possible values are `abort` (default), `allow`, `downgrade-abort` and
2293 Possible values are `abort` (default), `allow`, `downgrade-abort` and
2288 `downgrade-allow`.
2294 `downgrade-allow`.
2289
2295
2290 ``abort``
2296 ``abort``
2291 Disallows running any command and aborts
2297 Disallows running any command and aborts
2292 ``allow``
2298 ``allow``
2293 Respects the feature presence in the share source
2299 Respects the feature presence in the share source
2294 ``downgrade-abort``
2300 ``downgrade-abort``
2295 Tries to downgrade the share to not use share-safe; if it fails, aborts
2301 Tries to downgrade the share to not use share-safe; if it fails, aborts
2296 ``downgrade-allow``
2302 ``downgrade-allow``
2297 Tries to downgrade the share to not use share-safe;
2303 Tries to downgrade the share to not use share-safe;
2298 if it fails, continue by respecting the shared source setting
2304 if it fails, continue by respecting the shared source setting
2299
2305
2300 Check :hg:`help config.format.use-share-safe` for details about the
2306 Check :hg:`help config.format.use-share-safe` for details about the
2301 share-safe feature.
2307 share-safe feature.
2302
2308
2303 ``safe-mismatch.source-not-safe:verbose-upgrade``
2309 ``safe-mismatch.source-not-safe:verbose-upgrade``
2304 Display a message when upgrading, (default: True)
2310 Display a message when upgrading, (default: True)
2305
2311
2306 ``safe-mismatch.source-not-safe.warn``
2312 ``safe-mismatch.source-not-safe.warn``
2307 Shows a warning on operations if the shared repository uses share-safe,
2313 Shows a warning on operations if the shared repository uses share-safe,
2308 but the source repository does not.
2314 but the source repository does not.
2309 (default: True)
2315 (default: True)
2310
2316
2311 ``storage``
2317 ``storage``
2312 -----------
2318 -----------
2313
2319
2314 Control the strategy Mercurial uses internally to store history. Options in this
2320 Control the strategy Mercurial uses internally to store history. Options in this
2315 category impact performance and repository size.
2321 category impact performance and repository size.
2316
2322
2317 ``revlog.issue6528.fix-incoming``
2323 ``revlog.issue6528.fix-incoming``
2318 Version 5.8 of Mercurial had a bug leading to altering the parent of file
2324 Version 5.8 of Mercurial had a bug leading to altering the parent of file
2319 revision with copy information (or any other metadata) on exchange. This
2325 revision with copy information (or any other metadata) on exchange. This
2320 leads to the copy metadata to be overlooked by various internal logic. The
2326 leads to the copy metadata to be overlooked by various internal logic. The
2321 issue was fixed in Mercurial 5.8.1.
2327 issue was fixed in Mercurial 5.8.1.
2322 (See https://bz.mercurial-scm.org/show_bug.cgi?id=6528 for details)
2328 (See https://bz.mercurial-scm.org/show_bug.cgi?id=6528 for details)
2323
2329
2324 As a result Mercurial is now checking and fixing incoming file revisions to
2330 As a result Mercurial is now checking and fixing incoming file revisions to
2325 make sure there parents are in the right order. This behavior can be
2331 make sure there parents are in the right order. This behavior can be
2326 disabled by setting this option to `no`. This apply to revisions added
2332 disabled by setting this option to `no`. This apply to revisions added
2327 through push, pull, clone and unbundle.
2333 through push, pull, clone and unbundle.
2328
2334
2329 To fix affected revisions that already exist within the repository, one can
2335 To fix affected revisions that already exist within the repository, one can
2330 use :hg:`debug-repair-issue-6528`.
2336 use :hg:`debug-repair-issue-6528`.
2331
2337
2332 .. container:: verbose
2338 .. container:: verbose
2333
2339
2334 ``revlog.delta-parent-search.candidate-group-chunk-size``
2340 ``revlog.delta-parent-search.candidate-group-chunk-size``
2335 Tune the number of delta bases the storage will consider in the
2341 Tune the number of delta bases the storage will consider in the
2336 same "round" of search. In some very rare cases, using a smaller value
2342 same "round" of search. In some very rare cases, using a smaller value
2337 might result in faster processing at the possible expense of storage
2343 might result in faster processing at the possible expense of storage
2338 space, while using larger values might result in slower processing at the
2344 space, while using larger values might result in slower processing at the
2339 possible benefit of storage space. A value of "0" means no limitation.
2345 possible benefit of storage space. A value of "0" means no limitation.
2340
2346
2341 default: no limitation
2347 default: no limitation
2342
2348
2343 This is unlikely that you'll have to tune this configuration. If you think
2349 This is unlikely that you'll have to tune this configuration. If you think
2344 you do, consider talking with the mercurial developer community about your
2350 you do, consider talking with the mercurial developer community about your
2345 repositories.
2351 repositories.
2346
2352
2347 ``revlog.mmap.index``
2353 ``revlog.mmap.index``
2348 Whether to use the Operating System "memory mapping" feature (when
2354 Whether to use the Operating System "memory mapping" feature (when
2349 possible) to access the revlog index. This improves performance
2355 possible) to access the revlog index. This improves performance
2350 and reduces memory pressure.
2356 and reduces memory pressure.
2351
2357
2352 .. container:: verbose
2358 .. container:: verbose
2353
2359
2354 ``revlog.mmap.index:size-threshold``
2360 ``revlog.mmap.index:size-threshold``
2355
2361
2356 The size of index above which to use the "memory mapping" feature.
2362 The size of index above which to use the "memory mapping" feature.
2357
2363
2358 ``revlog.optimize-delta-parent-choice``
2364 ``revlog.optimize-delta-parent-choice``
2359 When storing a merge revision, both parents will be equally considered as
2365 When storing a merge revision, both parents will be equally considered as
2360 a possible delta base. This results in better delta selection and improved
2366 a possible delta base. This results in better delta selection and improved
2361 revlog compression. This option is enabled by default.
2367 revlog compression. This option is enabled by default.
2362
2368
2363 Turning this option off can result in large increase of repository size for
2369 Turning this option off can result in large increase of repository size for
2364 repository with many merges.
2370 repository with many merges.
2365
2371
2366 ``revlog.persistent-nodemap.mmap``
2372 ``revlog.persistent-nodemap.mmap``
2367 Whether to use the Operating System "memory mapping" feature (when
2373 Whether to use the Operating System "memory mapping" feature (when
2368 possible) to access the persistent nodemap data. This improve performance
2374 possible) to access the persistent nodemap data. This improve performance
2369 and reduce memory pressure.
2375 and reduce memory pressure.
2370
2376
2371 Default to True.
2377 Default to True.
2372
2378
2373 For details on the "persistent-nodemap" feature, see:
2379 For details on the "persistent-nodemap" feature, see:
2374 :hg:`help config.format.use-persistent-nodemap`.
2380 :hg:`help config.format.use-persistent-nodemap`.
2375
2381
2376 ``revlog.persistent-nodemap.slow-path``
2382 ``revlog.persistent-nodemap.slow-path``
2377 Control the behavior of Merucrial when using a repository with "persistent"
2383 Control the behavior of Merucrial when using a repository with "persistent"
2378 nodemap with an installation of Mercurial without a fast implementation for
2384 nodemap with an installation of Mercurial without a fast implementation for
2379 the feature:
2385 the feature:
2380
2386
2381 ``allow``: Silently use the slower implementation to access the repository.
2387 ``allow``: Silently use the slower implementation to access the repository.
2382 ``warn``: Warn, but use the slower implementation to access the repository.
2388 ``warn``: Warn, but use the slower implementation to access the repository.
2383 ``abort``: Prevent access to such repositories. (This is the default)
2389 ``abort``: Prevent access to such repositories. (This is the default)
2384
2390
2385 For details on the "persistent-nodemap" feature, see:
2391 For details on the "persistent-nodemap" feature, see:
2386 :hg:`help config.format.use-persistent-nodemap`.
2392 :hg:`help config.format.use-persistent-nodemap`.
2387
2393
2388 ``revlog.reuse-external-delta-parent``
2394 ``revlog.reuse-external-delta-parent``
2389 Control the order in which delta parents are considered when adding new
2395 Control the order in which delta parents are considered when adding new
2390 revisions from an external source.
2396 revisions from an external source.
2391 (typically: apply bundle from `hg pull` or `hg push`).
2397 (typically: apply bundle from `hg pull` or `hg push`).
2392
2398
2393 New revisions are usually provided as a delta against other revisions. By
2399 New revisions are usually provided as a delta against other revisions. By
2394 default, Mercurial will try to reuse this delta first, therefore using the
2400 default, Mercurial will try to reuse this delta first, therefore using the
2395 same "delta parent" as the source. Directly using delta's from the source
2401 same "delta parent" as the source. Directly using delta's from the source
2396 reduces CPU usage and usually speeds up operation. However, in some case,
2402 reduces CPU usage and usually speeds up operation. However, in some case,
2397 the source might have sub-optimal delta bases and forcing their reevaluation
2403 the source might have sub-optimal delta bases and forcing their reevaluation
2398 is useful. For example, pushes from an old client could have sub-optimal
2404 is useful. For example, pushes from an old client could have sub-optimal
2399 delta's parent that the server want to optimize. (lack of general delta, bad
2405 delta's parent that the server want to optimize. (lack of general delta, bad
2400 parents, choice, lack of sparse-revlog, etc).
2406 parents, choice, lack of sparse-revlog, etc).
2401
2407
2402 This option is enabled by default. Turning it off will ensure bad delta
2408 This option is enabled by default. Turning it off will ensure bad delta
2403 parent choices from older client do not propagate to this repository, at
2409 parent choices from older client do not propagate to this repository, at
2404 the cost of a small increase in CPU consumption.
2410 the cost of a small increase in CPU consumption.
2405
2411
2406 Note: this option only control the order in which delta parents are
2412 Note: this option only control the order in which delta parents are
2407 considered. Even when disabled, the existing delta from the source will be
2413 considered. Even when disabled, the existing delta from the source will be
2408 reused if the same delta parent is selected.
2414 reused if the same delta parent is selected.
2409
2415
2410 ``revlog.reuse-external-delta``
2416 ``revlog.reuse-external-delta``
2411 Control the reuse of delta from external source.
2417 Control the reuse of delta from external source.
2412 (typically: apply bundle from `hg pull` or `hg push`).
2418 (typically: apply bundle from `hg pull` or `hg push`).
2413
2419
2414 New revisions are usually provided as a delta against another revision. By
2420 New revisions are usually provided as a delta against another revision. By
2415 default, Mercurial will not recompute the same delta again, trusting
2421 default, Mercurial will not recompute the same delta again, trusting
2416 externally provided deltas. There have been rare cases of small adjustment
2422 externally provided deltas. There have been rare cases of small adjustment
2417 to the diffing algorithm in the past. So in some rare case, recomputing
2423 to the diffing algorithm in the past. So in some rare case, recomputing
2418 delta provided by ancient clients can provides better results. Disabling
2424 delta provided by ancient clients can provides better results. Disabling
2419 this option means going through a full delta recomputation for all incoming
2425 this option means going through a full delta recomputation for all incoming
2420 revisions. It means a large increase in CPU usage and will slow operations
2426 revisions. It means a large increase in CPU usage and will slow operations
2421 down.
2427 down.
2422
2428
2423 This option is enabled by default. When disabled, it also disables the
2429 This option is enabled by default. When disabled, it also disables the
2424 related ``storage.revlog.reuse-external-delta-parent`` option.
2430 related ``storage.revlog.reuse-external-delta-parent`` option.
2425
2431
2426 ``revlog.zlib.level``
2432 ``revlog.zlib.level``
2427 Zlib compression level used when storing data into the repository. Accepted
2433 Zlib compression level used when storing data into the repository. Accepted
2428 Value range from 1 (lowest compression) to 9 (highest compression). Zlib
2434 Value range from 1 (lowest compression) to 9 (highest compression). Zlib
2429 default value is 6.
2435 default value is 6.
2430
2436
2431
2437
2432 ``revlog.zstd.level``
2438 ``revlog.zstd.level``
2433 zstd compression level used when storing data into the repository. Accepted
2439 zstd compression level used when storing data into the repository. Accepted
2434 Value range from 1 (lowest compression) to 22 (highest compression).
2440 Value range from 1 (lowest compression) to 22 (highest compression).
2435 (default 3)
2441 (default 3)
2436
2442
2437 ``server``
2443 ``server``
2438 ----------
2444 ----------
2439
2445
2440 Controls generic server settings.
2446 Controls generic server settings.
2441
2447
2442 ``bookmarks-pushkey-compat``
2448 ``bookmarks-pushkey-compat``
2443 Trigger pushkey hook when being pushed bookmark updates. This config exist
2449 Trigger pushkey hook when being pushed bookmark updates. This config exist
2444 for compatibility purpose (default to True)
2450 for compatibility purpose (default to True)
2445
2451
2446 If you use ``pushkey`` and ``pre-pushkey`` hooks to control bookmark
2452 If you use ``pushkey`` and ``pre-pushkey`` hooks to control bookmark
2447 movement we recommend you migrate them to ``txnclose-bookmark`` and
2453 movement we recommend you migrate them to ``txnclose-bookmark`` and
2448 ``pretxnclose-bookmark``.
2454 ``pretxnclose-bookmark``.
2449
2455
2450 ``compressionengines``
2456 ``compressionengines``
2451 List of compression engines and their relative priority to advertise
2457 List of compression engines and their relative priority to advertise
2452 to clients.
2458 to clients.
2453
2459
2454 The order of compression engines determines their priority, the first
2460 The order of compression engines determines their priority, the first
2455 having the highest priority. If a compression engine is not listed
2461 having the highest priority. If a compression engine is not listed
2456 here, it won't be advertised to clients.
2462 here, it won't be advertised to clients.
2457
2463
2458 If not set (the default), built-in defaults are used. Run
2464 If not set (the default), built-in defaults are used. Run
2459 :hg:`debuginstall` to list available compression engines and their
2465 :hg:`debuginstall` to list available compression engines and their
2460 default wire protocol priority.
2466 default wire protocol priority.
2461
2467
2462 Older Mercurial clients only support zlib compression and this setting
2468 Older Mercurial clients only support zlib compression and this setting
2463 has no effect for legacy clients.
2469 has no effect for legacy clients.
2464
2470
2465 ``uncompressed``
2471 ``uncompressed``
2466 Whether to allow clients to clone a repository using the
2472 Whether to allow clients to clone a repository using the
2467 uncompressed streaming protocol. This transfers about 40% more
2473 uncompressed streaming protocol. This transfers about 40% more
2468 data than a regular clone, but uses less memory and CPU on both
2474 data than a regular clone, but uses less memory and CPU on both
2469 server and client. Over a LAN (100 Mbps or better) or a very fast
2475 server and client. Over a LAN (100 Mbps or better) or a very fast
2470 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
2476 WAN, an uncompressed streaming clone is a lot faster (~10x) than a
2471 regular clone. Over most WAN connections (anything slower than
2477 regular clone. Over most WAN connections (anything slower than
2472 about 6 Mbps), uncompressed streaming is slower, because of the
2478 about 6 Mbps), uncompressed streaming is slower, because of the
2473 extra data transfer overhead. This mode will also temporarily hold
2479 extra data transfer overhead. This mode will also temporarily hold
2474 the write lock while determining what data to transfer.
2480 the write lock while determining what data to transfer.
2475 (default: True)
2481 (default: True)
2476
2482
2477 ``uncompressedallowsecret``
2483 ``uncompressedallowsecret``
2478 Whether to allow stream clones when the repository contains secret
2484 Whether to allow stream clones when the repository contains secret
2479 changesets. (default: False)
2485 changesets. (default: False)
2480
2486
2481 ``preferuncompressed``
2487 ``preferuncompressed``
2482 When set, clients will try to use the uncompressed streaming
2488 When set, clients will try to use the uncompressed streaming
2483 protocol. (default: False)
2489 protocol. (default: False)
2484
2490
2485 ``disablefullbundle``
2491 ``disablefullbundle``
2486 When set, servers will refuse attempts to do pull-based clones.
2492 When set, servers will refuse attempts to do pull-based clones.
2487 If this option is set, ``preferuncompressed`` and/or clone bundles
2493 If this option is set, ``preferuncompressed`` and/or clone bundles
2488 are highly recommended. Partial clones will still be allowed.
2494 are highly recommended. Partial clones will still be allowed.
2489 (default: False)
2495 (default: False)
2490
2496
2491 ``streamunbundle``
2497 ``streamunbundle``
2492 When set, servers will apply data sent from the client directly,
2498 When set, servers will apply data sent from the client directly,
2493 otherwise it will be written to a temporary file first. This option
2499 otherwise it will be written to a temporary file first. This option
2494 effectively prevents concurrent pushes.
2500 effectively prevents concurrent pushes.
2495
2501
2496 ``pullbundle``
2502 ``pullbundle``
2497 When set, the server will check pullbundles.manifest for bundles
2503 When set, the server will check pullbundles.manifest for bundles
2498 covering the requested heads and common nodes. The first matching
2504 covering the requested heads and common nodes. The first matching
2499 entry will be streamed to the client.
2505 entry will be streamed to the client.
2500
2506
2501 For HTTP transport, the stream will still use zlib compression
2507 For HTTP transport, the stream will still use zlib compression
2502 for older clients.
2508 for older clients.
2503
2509
2504 ``concurrent-push-mode``
2510 ``concurrent-push-mode``
2505 Level of allowed race condition between two pushing clients.
2511 Level of allowed race condition between two pushing clients.
2506
2512
2507 - 'strict': push is abort if another client touched the repository
2513 - 'strict': push is abort if another client touched the repository
2508 while the push was preparing.
2514 while the push was preparing.
2509 - 'check-related': push is only aborted if it affects head that got also
2515 - 'check-related': push is only aborted if it affects head that got also
2510 affected while the push was preparing. (default since 5.4)
2516 affected while the push was preparing. (default since 5.4)
2511
2517
2512 'check-related' only takes effect for compatible clients (version
2518 'check-related' only takes effect for compatible clients (version
2513 4.3 and later). Older clients will use 'strict'.
2519 4.3 and later). Older clients will use 'strict'.
2514
2520
2515 ``validate``
2521 ``validate``
2516 Whether to validate the completeness of pushed changesets by
2522 Whether to validate the completeness of pushed changesets by
2517 checking that all new file revisions specified in manifests are
2523 checking that all new file revisions specified in manifests are
2518 present. (default: False)
2524 present. (default: False)
2519
2525
2520 ``maxhttpheaderlen``
2526 ``maxhttpheaderlen``
2521 Instruct HTTP clients not to send request headers longer than this
2527 Instruct HTTP clients not to send request headers longer than this
2522 many bytes. (default: 1024)
2528 many bytes. (default: 1024)
2523
2529
2524 ``bundle1``
2530 ``bundle1``
2525 Whether to allow clients to push and pull using the legacy bundle1
2531 Whether to allow clients to push and pull using the legacy bundle1
2526 exchange format. (default: True)
2532 exchange format. (default: True)
2527
2533
2528 ``bundle1gd``
2534 ``bundle1gd``
2529 Like ``bundle1`` but only used if the repository is using the
2535 Like ``bundle1`` but only used if the repository is using the
2530 *generaldelta* storage format. (default: True)
2536 *generaldelta* storage format. (default: True)
2531
2537
2532 ``bundle1.push``
2538 ``bundle1.push``
2533 Whether to allow clients to push using the legacy bundle1 exchange
2539 Whether to allow clients to push using the legacy bundle1 exchange
2534 format. (default: True)
2540 format. (default: True)
2535
2541
2536 ``bundle1gd.push``
2542 ``bundle1gd.push``
2537 Like ``bundle1.push`` but only used if the repository is using the
2543 Like ``bundle1.push`` but only used if the repository is using the
2538 *generaldelta* storage format. (default: True)
2544 *generaldelta* storage format. (default: True)
2539
2545
2540 ``bundle1.pull``
2546 ``bundle1.pull``
2541 Whether to allow clients to pull using the legacy bundle1 exchange
2547 Whether to allow clients to pull using the legacy bundle1 exchange
2542 format. (default: True)
2548 format. (default: True)
2543
2549
2544 ``bundle1gd.pull``
2550 ``bundle1gd.pull``
2545 Like ``bundle1.pull`` but only used if the repository is using the
2551 Like ``bundle1.pull`` but only used if the repository is using the
2546 *generaldelta* storage format. (default: True)
2552 *generaldelta* storage format. (default: True)
2547
2553
2548 Large repositories using the *generaldelta* storage format should
2554 Large repositories using the *generaldelta* storage format should
2549 consider setting this option because converting *generaldelta*
2555 consider setting this option because converting *generaldelta*
2550 repositories to the exchange format required by the bundle1 data
2556 repositories to the exchange format required by the bundle1 data
2551 format can consume a lot of CPU.
2557 format can consume a lot of CPU.
2552
2558
2553 ``bundle2.stream``
2559 ``bundle2.stream``
2554 Whether to allow clients to pull using the bundle2 streaming protocol.
2560 Whether to allow clients to pull using the bundle2 streaming protocol.
2555 (default: True)
2561 (default: True)
2556
2562
2557 ``zliblevel``
2563 ``zliblevel``
2558 Integer between ``-1`` and ``9`` that controls the zlib compression level
2564 Integer between ``-1`` and ``9`` that controls the zlib compression level
2559 for wire protocol commands that send zlib compressed output (notably the
2565 for wire protocol commands that send zlib compressed output (notably the
2560 commands that send repository history data).
2566 commands that send repository history data).
2561
2567
2562 The default (``-1``) uses the default zlib compression level, which is
2568 The default (``-1``) uses the default zlib compression level, which is
2563 likely equivalent to ``6``. ``0`` means no compression. ``9`` means
2569 likely equivalent to ``6``. ``0`` means no compression. ``9`` means
2564 maximum compression.
2570 maximum compression.
2565
2571
2566 Setting this option allows server operators to make trade-offs between
2572 Setting this option allows server operators to make trade-offs between
2567 bandwidth and CPU used. Lowering the compression lowers CPU utilization
2573 bandwidth and CPU used. Lowering the compression lowers CPU utilization
2568 but sends more bytes to clients.
2574 but sends more bytes to clients.
2569
2575
2570 This option only impacts the HTTP server.
2576 This option only impacts the HTTP server.
2571
2577
2572 ``zstdlevel``
2578 ``zstdlevel``
2573 Integer between ``1`` and ``22`` that controls the zstd compression level
2579 Integer between ``1`` and ``22`` that controls the zstd compression level
2574 for wire protocol commands. ``1`` is the minimal amount of compression and
2580 for wire protocol commands. ``1`` is the minimal amount of compression and
2575 ``22`` is the highest amount of compression.
2581 ``22`` is the highest amount of compression.
2576
2582
2577 The default (``3``) should be significantly faster than zlib while likely
2583 The default (``3``) should be significantly faster than zlib while likely
2578 delivering better compression ratios.
2584 delivering better compression ratios.
2579
2585
2580 This option only impacts the HTTP server.
2586 This option only impacts the HTTP server.
2581
2587
2582 See also ``server.zliblevel``.
2588 See also ``server.zliblevel``.
2583
2589
2584 ``view``
2590 ``view``
2585 Repository filter used when exchanging revisions with the peer.
2591 Repository filter used when exchanging revisions with the peer.
2586
2592
2587 The default view (``served``) excludes secret and hidden changesets.
2593 The default view (``served``) excludes secret and hidden changesets.
2588 Another useful value is ``immutable`` (no draft, secret or hidden
2594 Another useful value is ``immutable`` (no draft, secret or hidden
2589 changesets). (EXPERIMENTAL)
2595 changesets). (EXPERIMENTAL)
2590
2596
2591 ``smtp``
2597 ``smtp``
2592 --------
2598 --------
2593
2599
2594 Configuration for extensions that need to send email messages.
2600 Configuration for extensions that need to send email messages.
2595
2601
2596 ``host``
2602 ``host``
2597 Host name of mail server, e.g. "mail.example.com".
2603 Host name of mail server, e.g. "mail.example.com".
2598
2604
2599 ``port``
2605 ``port``
2600 Optional. Port to connect to on mail server. (default: 465 if
2606 Optional. Port to connect to on mail server. (default: 465 if
2601 ``tls`` is smtps; 25 otherwise)
2607 ``tls`` is smtps; 25 otherwise)
2602
2608
2603 ``tls``
2609 ``tls``
2604 Optional. Method to enable TLS when connecting to mail server: starttls,
2610 Optional. Method to enable TLS when connecting to mail server: starttls,
2605 smtps or none. (default: none)
2611 smtps or none. (default: none)
2606
2612
2607 ``username``
2613 ``username``
2608 Optional. User name for authenticating with the SMTP server.
2614 Optional. User name for authenticating with the SMTP server.
2609 (default: None)
2615 (default: None)
2610
2616
2611 ``password``
2617 ``password``
2612 Optional. Password for authenticating with the SMTP server. If not
2618 Optional. Password for authenticating with the SMTP server. If not
2613 specified, interactive sessions will prompt the user for a
2619 specified, interactive sessions will prompt the user for a
2614 password; non-interactive sessions will fail. (default: None)
2620 password; non-interactive sessions will fail. (default: None)
2615
2621
2616 ``local_hostname``
2622 ``local_hostname``
2617 Optional. The hostname that the sender can use to identify
2623 Optional. The hostname that the sender can use to identify
2618 itself to the MTA.
2624 itself to the MTA.
2619
2625
2620
2626
2621 ``subpaths``
2627 ``subpaths``
2622 ------------
2628 ------------
2623
2629
2624 Subrepository source URLs can go stale if a remote server changes name
2630 Subrepository source URLs can go stale if a remote server changes name
2625 or becomes temporarily unavailable. This section lets you define
2631 or becomes temporarily unavailable. This section lets you define
2626 rewrite rules of the form::
2632 rewrite rules of the form::
2627
2633
2628 <pattern> = <replacement>
2634 <pattern> = <replacement>
2629
2635
2630 where ``pattern`` is a regular expression matching a subrepository
2636 where ``pattern`` is a regular expression matching a subrepository
2631 source URL and ``replacement`` is the replacement string used to
2637 source URL and ``replacement`` is the replacement string used to
2632 rewrite it. Groups can be matched in ``pattern`` and referenced in
2638 rewrite it. Groups can be matched in ``pattern`` and referenced in
2633 ``replacements``. For instance::
2639 ``replacements``. For instance::
2634
2640
2635 http://server/(.*)-hg/ = http://hg.server/\1/
2641 http://server/(.*)-hg/ = http://hg.server/\1/
2636
2642
2637 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
2643 rewrites ``http://server/foo-hg/`` into ``http://hg.server/foo/``.
2638
2644
2639 Relative subrepository paths are first made absolute, and the
2645 Relative subrepository paths are first made absolute, and the
2640 rewrite rules are then applied on the full (absolute) path. If ``pattern``
2646 rewrite rules are then applied on the full (absolute) path. If ``pattern``
2641 doesn't match the full path, an attempt is made to apply it on the
2647 doesn't match the full path, an attempt is made to apply it on the
2642 relative path alone. The rules are applied in definition order.
2648 relative path alone. The rules are applied in definition order.
2643
2649
2644 ``subrepos``
2650 ``subrepos``
2645 ------------
2651 ------------
2646
2652
2647 This section contains options that control the behavior of the
2653 This section contains options that control the behavior of the
2648 subrepositories feature. See also :hg:`help subrepos`.
2654 subrepositories feature. See also :hg:`help subrepos`.
2649
2655
2650 Security note: auditing in Mercurial is known to be insufficient to
2656 Security note: auditing in Mercurial is known to be insufficient to
2651 prevent clone-time code execution with carefully constructed Git
2657 prevent clone-time code execution with carefully constructed Git
2652 subrepos. It is unknown if a similar detect is present in Subversion
2658 subrepos. It is unknown if a similar detect is present in Subversion
2653 subrepos. Both Git and Subversion subrepos are disabled by default
2659 subrepos. Both Git and Subversion subrepos are disabled by default
2654 out of security concerns. These subrepo types can be enabled using
2660 out of security concerns. These subrepo types can be enabled using
2655 the respective options below.
2661 the respective options below.
2656
2662
2657 ``allowed``
2663 ``allowed``
2658 Whether subrepositories are allowed in the working directory.
2664 Whether subrepositories are allowed in the working directory.
2659
2665
2660 When false, commands involving subrepositories (like :hg:`update`)
2666 When false, commands involving subrepositories (like :hg:`update`)
2661 will fail for all subrepository types.
2667 will fail for all subrepository types.
2662 (default: true)
2668 (default: true)
2663
2669
2664 ``hg:allowed``
2670 ``hg:allowed``
2665 Whether Mercurial subrepositories are allowed in the working
2671 Whether Mercurial subrepositories are allowed in the working
2666 directory. This option only has an effect if ``subrepos.allowed``
2672 directory. This option only has an effect if ``subrepos.allowed``
2667 is true.
2673 is true.
2668 (default: true)
2674 (default: true)
2669
2675
2670 ``git:allowed``
2676 ``git:allowed``
2671 Whether Git subrepositories are allowed in the working directory.
2677 Whether Git subrepositories are allowed in the working directory.
2672 This option only has an effect if ``subrepos.allowed`` is true.
2678 This option only has an effect if ``subrepos.allowed`` is true.
2673
2679
2674 See the security note above before enabling Git subrepos.
2680 See the security note above before enabling Git subrepos.
2675 (default: false)
2681 (default: false)
2676
2682
2677 ``svn:allowed``
2683 ``svn:allowed``
2678 Whether Subversion subrepositories are allowed in the working
2684 Whether Subversion subrepositories are allowed in the working
2679 directory. This option only has an effect if ``subrepos.allowed``
2685 directory. This option only has an effect if ``subrepos.allowed``
2680 is true.
2686 is true.
2681
2687
2682 See the security note above before enabling Subversion subrepos.
2688 See the security note above before enabling Subversion subrepos.
2683 (default: false)
2689 (default: false)
2684
2690
2685 ``templatealias``
2691 ``templatealias``
2686 -----------------
2692 -----------------
2687
2693
2688 Alias definitions for templates. See :hg:`help templates` for details.
2694 Alias definitions for templates. See :hg:`help templates` for details.
2689
2695
2690 ``templates``
2696 ``templates``
2691 -------------
2697 -------------
2692
2698
2693 Use the ``[templates]`` section to define template strings.
2699 Use the ``[templates]`` section to define template strings.
2694 See :hg:`help templates` for details.
2700 See :hg:`help templates` for details.
2695
2701
2696 ``trusted``
2702 ``trusted``
2697 -----------
2703 -----------
2698
2704
2699 Mercurial will not use the settings in the
2705 Mercurial will not use the settings in the
2700 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
2706 ``.hg/hgrc`` file from a repository if it doesn't belong to a trusted
2701 user or to a trusted group, as various hgrc features allow arbitrary
2707 user or to a trusted group, as various hgrc features allow arbitrary
2702 commands to be run. This issue is often encountered when configuring
2708 commands to be run. This issue is often encountered when configuring
2703 hooks or extensions for shared repositories or servers. However,
2709 hooks or extensions for shared repositories or servers. However,
2704 the web interface will use some safe settings from the ``[web]``
2710 the web interface will use some safe settings from the ``[web]``
2705 section.
2711 section.
2706
2712
2707 This section specifies what users and groups are trusted. The
2713 This section specifies what users and groups are trusted. The
2708 current user is always trusted. To trust everybody, list a user or a
2714 current user is always trusted. To trust everybody, list a user or a
2709 group with name ``*``. These settings must be placed in an
2715 group with name ``*``. These settings must be placed in an
2710 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
2716 *already-trusted file* to take effect, such as ``$HOME/.hgrc`` of the
2711 user or service running Mercurial.
2717 user or service running Mercurial.
2712
2718
2713 ``users``
2719 ``users``
2714 Comma-separated list of trusted users.
2720 Comma-separated list of trusted users.
2715
2721
2716 ``groups``
2722 ``groups``
2717 Comma-separated list of trusted groups.
2723 Comma-separated list of trusted groups.
2718
2724
2719
2725
2720 ``ui``
2726 ``ui``
2721 ------
2727 ------
2722
2728
2723 User interface controls.
2729 User interface controls.
2724
2730
2725 ``archivemeta``
2731 ``archivemeta``
2726 Whether to include the .hg_archival.txt file containing meta data
2732 Whether to include the .hg_archival.txt file containing meta data
2727 (hashes for the repository base and for tip) in archives created
2733 (hashes for the repository base and for tip) in archives created
2728 by the :hg:`archive` command or downloaded via hgweb.
2734 by the :hg:`archive` command or downloaded via hgweb.
2729 (default: True)
2735 (default: True)
2730
2736
2731 ``askusername``
2737 ``askusername``
2732 Whether to prompt for a username when committing. If True, and
2738 Whether to prompt for a username when committing. If True, and
2733 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
2739 neither ``$HGUSER`` nor ``$EMAIL`` has been specified, then the user will
2734 be prompted to enter a username. If no username is entered, the
2740 be prompted to enter a username. If no username is entered, the
2735 default ``USER@HOST`` is used instead.
2741 default ``USER@HOST`` is used instead.
2736 (default: False)
2742 (default: False)
2737
2743
2738 ``clonebundles``
2744 ``clonebundles``
2739 Whether the "clone bundles" feature is enabled.
2745 Whether the "clone bundles" feature is enabled.
2740
2746
2741 When enabled, :hg:`clone` may download and apply a server-advertised
2747 When enabled, :hg:`clone` may download and apply a server-advertised
2742 bundle file from a URL instead of using the normal exchange mechanism.
2748 bundle file from a URL instead of using the normal exchange mechanism.
2743
2749
2744 This can likely result in faster and more reliable clones.
2750 This can likely result in faster and more reliable clones.
2745
2751
2746 (default: True)
2752 (default: True)
2747
2753
2748 ``clonebundlefallback``
2754 ``clonebundlefallback``
2749 Whether failure to apply an advertised "clone bundle" from a server
2755 Whether failure to apply an advertised "clone bundle" from a server
2750 should result in fallback to a regular clone.
2756 should result in fallback to a regular clone.
2751
2757
2752 This is disabled by default because servers advertising "clone
2758 This is disabled by default because servers advertising "clone
2753 bundles" often do so to reduce server load. If advertised bundles
2759 bundles" often do so to reduce server load. If advertised bundles
2754 start mass failing and clients automatically fall back to a regular
2760 start mass failing and clients automatically fall back to a regular
2755 clone, this would add significant and unexpected load to the server
2761 clone, this would add significant and unexpected load to the server
2756 since the server is expecting clone operations to be offloaded to
2762 since the server is expecting clone operations to be offloaded to
2757 pre-generated bundles. Failing fast (the default behavior) ensures
2763 pre-generated bundles. Failing fast (the default behavior) ensures
2758 clients don't overwhelm the server when "clone bundle" application
2764 clients don't overwhelm the server when "clone bundle" application
2759 fails.
2765 fails.
2760
2766
2761 (default: False)
2767 (default: False)
2762
2768
2763 ``clonebundleprefers``
2769 ``clonebundleprefers``
2764 Defines preferences for which "clone bundles" to use.
2770 Defines preferences for which "clone bundles" to use.
2765
2771
2766 Servers advertising "clone bundles" may advertise multiple available
2772 Servers advertising "clone bundles" may advertise multiple available
2767 bundles. Each bundle may have different attributes, such as the bundle
2773 bundles. Each bundle may have different attributes, such as the bundle
2768 type and compression format. This option is used to prefer a particular
2774 type and compression format. This option is used to prefer a particular
2769 bundle over another.
2775 bundle over another.
2770
2776
2771 The following keys are defined by Mercurial:
2777 The following keys are defined by Mercurial:
2772
2778
2773 BUNDLESPEC
2779 BUNDLESPEC
2774 A bundle type specifier. These are strings passed to :hg:`bundle -t`.
2780 A bundle type specifier. These are strings passed to :hg:`bundle -t`.
2775 e.g. ``gzip-v2`` or ``bzip2-v1``.
2781 e.g. ``gzip-v2`` or ``bzip2-v1``.
2776
2782
2777 COMPRESSION
2783 COMPRESSION
2778 The compression format of the bundle. e.g. ``gzip`` and ``bzip2``.
2784 The compression format of the bundle. e.g. ``gzip`` and ``bzip2``.
2779
2785
2780 Server operators may define custom keys.
2786 Server operators may define custom keys.
2781
2787
2782 Example values: ``COMPRESSION=bzip2``,
2788 Example values: ``COMPRESSION=bzip2``,
2783 ``BUNDLESPEC=gzip-v2, COMPRESSION=gzip``.
2789 ``BUNDLESPEC=gzip-v2, COMPRESSION=gzip``.
2784
2790
2785 By default, the first bundle advertised by the server is used.
2791 By default, the first bundle advertised by the server is used.
2786
2792
2787 ``color``
2793 ``color``
2788 When to colorize output. Possible value are Boolean ("yes" or "no"), or
2794 When to colorize output. Possible value are Boolean ("yes" or "no"), or
2789 "debug", or "always". (default: "yes"). "yes" will use color whenever it
2795 "debug", or "always". (default: "yes"). "yes" will use color whenever it
2790 seems possible. See :hg:`help color` for details.
2796 seems possible. See :hg:`help color` for details.
2791
2797
2792 ``commitsubrepos``
2798 ``commitsubrepos``
2793 Whether to commit modified subrepositories when committing the
2799 Whether to commit modified subrepositories when committing the
2794 parent repository. If False and one subrepository has uncommitted
2800 parent repository. If False and one subrepository has uncommitted
2795 changes, abort the commit.
2801 changes, abort the commit.
2796 (default: False)
2802 (default: False)
2797
2803
2798 ``debug``
2804 ``debug``
2799 Print debugging information. (default: False)
2805 Print debugging information. (default: False)
2800
2806
2801 ``editor``
2807 ``editor``
2802 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
2808 The editor to use during a commit. (default: ``$EDITOR`` or ``vi``)
2803
2809
2804 ``fallbackencoding``
2810 ``fallbackencoding``
2805 Encoding to try if it's not possible to decode the changelog using
2811 Encoding to try if it's not possible to decode the changelog using
2806 UTF-8. (default: ISO-8859-1)
2812 UTF-8. (default: ISO-8859-1)
2807
2813
2808 ``graphnodetemplate``
2814 ``graphnodetemplate``
2809 (DEPRECATED) Use ``command-templates.graphnode`` instead.
2815 (DEPRECATED) Use ``command-templates.graphnode`` instead.
2810
2816
2811 ``ignore``
2817 ``ignore``
2812 A file to read per-user ignore patterns from. This file should be
2818 A file to read per-user ignore patterns from. This file should be
2813 in the same format as a repository-wide .hgignore file. Filenames
2819 in the same format as a repository-wide .hgignore file. Filenames
2814 are relative to the repository root. This option supports hook syntax,
2820 are relative to the repository root. This option supports hook syntax,
2815 so if you want to specify multiple ignore files, you can do so by
2821 so if you want to specify multiple ignore files, you can do so by
2816 setting something like ``ignore.other = ~/.hgignore2``. For details
2822 setting something like ``ignore.other = ~/.hgignore2``. For details
2817 of the ignore file format, see the ``hgignore(5)`` man page.
2823 of the ignore file format, see the ``hgignore(5)`` man page.
2818
2824
2819 ``interactive``
2825 ``interactive``
2820 Allow to prompt the user. (default: True)
2826 Allow to prompt the user. (default: True)
2821
2827
2822 ``interface``
2828 ``interface``
2823 Select the default interface for interactive features (default: text).
2829 Select the default interface for interactive features (default: text).
2824 Possible values are 'text' and 'curses'.
2830 Possible values are 'text' and 'curses'.
2825
2831
2826 ``interface.chunkselector``
2832 ``interface.chunkselector``
2827 Select the interface for change recording (e.g. :hg:`commit -i`).
2833 Select the interface for change recording (e.g. :hg:`commit -i`).
2828 Possible values are 'text' and 'curses'.
2834 Possible values are 'text' and 'curses'.
2829 This config overrides the interface specified by ui.interface.
2835 This config overrides the interface specified by ui.interface.
2830
2836
2831 ``large-file-limit``
2837 ``large-file-limit``
2832 Largest file size that gives no memory use warning.
2838 Largest file size that gives no memory use warning.
2833 Possible values are integers or 0 to disable the check.
2839 Possible values are integers or 0 to disable the check.
2834 Value is expressed in bytes by default, one can use standard units for
2840 Value is expressed in bytes by default, one can use standard units for
2835 convenience (e.g. 10MB, 0.1GB, etc) (default: 10MB)
2841 convenience (e.g. 10MB, 0.1GB, etc) (default: 10MB)
2836
2842
2837 ``logtemplate``
2843 ``logtemplate``
2838 (DEPRECATED) Use ``command-templates.log`` instead.
2844 (DEPRECATED) Use ``command-templates.log`` instead.
2839
2845
2840 ``merge``
2846 ``merge``
2841 The conflict resolution program to use during a manual merge.
2847 The conflict resolution program to use during a manual merge.
2842 For more information on merge tools see :hg:`help merge-tools`.
2848 For more information on merge tools see :hg:`help merge-tools`.
2843 For configuring merge tools see the ``[merge-tools]`` section.
2849 For configuring merge tools see the ``[merge-tools]`` section.
2844
2850
2845 ``mergemarkers``
2851 ``mergemarkers``
2846 Sets the merge conflict marker label styling. The ``detailed`` style
2852 Sets the merge conflict marker label styling. The ``detailed`` style
2847 uses the ``command-templates.mergemarker`` setting to style the labels.
2853 uses the ``command-templates.mergemarker`` setting to style the labels.
2848 The ``basic`` style just uses 'local' and 'other' as the marker label.
2854 The ``basic`` style just uses 'local' and 'other' as the marker label.
2849 One of ``basic`` or ``detailed``.
2855 One of ``basic`` or ``detailed``.
2850 (default: ``basic``)
2856 (default: ``basic``)
2851
2857
2852 ``mergemarkertemplate``
2858 ``mergemarkertemplate``
2853 (DEPRECATED) Use ``command-templates.mergemarker`` instead.
2859 (DEPRECATED) Use ``command-templates.mergemarker`` instead.
2854
2860
2855 ``message-output``
2861 ``message-output``
2856 Where to write status and error messages. (default: ``stdio``)
2862 Where to write status and error messages. (default: ``stdio``)
2857
2863
2858 ``channel``
2864 ``channel``
2859 Use separate channel for structured output. (Command-server only)
2865 Use separate channel for structured output. (Command-server only)
2860 ``stderr``
2866 ``stderr``
2861 Everything to stderr.
2867 Everything to stderr.
2862 ``stdio``
2868 ``stdio``
2863 Status to stdout, and error to stderr.
2869 Status to stdout, and error to stderr.
2864
2870
2865 ``origbackuppath``
2871 ``origbackuppath``
2866 The path to a directory used to store generated .orig files. If the path is
2872 The path to a directory used to store generated .orig files. If the path is
2867 not a directory, one will be created. If set, files stored in this
2873 not a directory, one will be created. If set, files stored in this
2868 directory have the same name as the original file and do not have a .orig
2874 directory have the same name as the original file and do not have a .orig
2869 suffix.
2875 suffix.
2870
2876
2871 ``paginate``
2877 ``paginate``
2872 Control the pagination of command output (default: True). See :hg:`help pager`
2878 Control the pagination of command output (default: True). See :hg:`help pager`
2873 for details.
2879 for details.
2874
2880
2875 ``patch``
2881 ``patch``
2876 An optional external tool that ``hg import`` and some extensions
2882 An optional external tool that ``hg import`` and some extensions
2877 will use for applying patches. By default Mercurial uses an
2883 will use for applying patches. By default Mercurial uses an
2878 internal patch utility. The external tool must work as the common
2884 internal patch utility. The external tool must work as the common
2879 Unix ``patch`` program. In particular, it must accept a ``-p``
2885 Unix ``patch`` program. In particular, it must accept a ``-p``
2880 argument to strip patch headers, a ``-d`` argument to specify the
2886 argument to strip patch headers, a ``-d`` argument to specify the
2881 current directory, a file name to patch, and a patch file to take
2887 current directory, a file name to patch, and a patch file to take
2882 from stdin.
2888 from stdin.
2883
2889
2884 It is possible to specify a patch tool together with extra
2890 It is possible to specify a patch tool together with extra
2885 arguments. For example, setting this option to ``patch --merge``
2891 arguments. For example, setting this option to ``patch --merge``
2886 will use the ``patch`` program with its 2-way merge option.
2892 will use the ``patch`` program with its 2-way merge option.
2887
2893
2888 ``portablefilenames``
2894 ``portablefilenames``
2889 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
2895 Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
2890 (default: ``warn``)
2896 (default: ``warn``)
2891
2897
2892 ``warn``
2898 ``warn``
2893 Print a warning message on POSIX platforms, if a file with a non-portable
2899 Print a warning message on POSIX platforms, if a file with a non-portable
2894 filename is added (e.g. a file with a name that can't be created on
2900 filename is added (e.g. a file with a name that can't be created on
2895 Windows because it contains reserved parts like ``AUX``, reserved
2901 Windows because it contains reserved parts like ``AUX``, reserved
2896 characters like ``:``, or would cause a case collision with an existing
2902 characters like ``:``, or would cause a case collision with an existing
2897 file).
2903 file).
2898
2904
2899 ``ignore``
2905 ``ignore``
2900 Don't print a warning.
2906 Don't print a warning.
2901
2907
2902 ``abort``
2908 ``abort``
2903 The command is aborted.
2909 The command is aborted.
2904
2910
2905 ``true``
2911 ``true``
2906 Alias for ``warn``.
2912 Alias for ``warn``.
2907
2913
2908 ``false``
2914 ``false``
2909 Alias for ``ignore``.
2915 Alias for ``ignore``.
2910
2916
2911 .. container:: windows
2917 .. container:: windows
2912
2918
2913 On Windows, this configuration option is ignored and the command aborted.
2919 On Windows, this configuration option is ignored and the command aborted.
2914
2920
2915 ``pre-merge-tool-output-template``
2921 ``pre-merge-tool-output-template``
2916 (DEPRECATED) Use ``command-template.pre-merge-tool-output`` instead.
2922 (DEPRECATED) Use ``command-template.pre-merge-tool-output`` instead.
2917
2923
2918 ``quiet``
2924 ``quiet``
2919 Reduce the amount of output printed.
2925 Reduce the amount of output printed.
2920 (default: False)
2926 (default: False)
2921
2927
2922 ``relative-paths``
2928 ``relative-paths``
2923 Prefer relative paths in the UI.
2929 Prefer relative paths in the UI.
2924
2930
2925 ``remotecmd``
2931 ``remotecmd``
2926 Remote command to use for clone/push/pull operations.
2932 Remote command to use for clone/push/pull operations.
2927 (default: ``hg``)
2933 (default: ``hg``)
2928
2934
2929 ``report_untrusted``
2935 ``report_untrusted``
2930 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
2936 Warn if a ``.hg/hgrc`` file is ignored due to not being owned by a
2931 trusted user or group.
2937 trusted user or group.
2932 (default: True)
2938 (default: True)
2933
2939
2934 ``slash``
2940 ``slash``
2935 (Deprecated. Use ``slashpath`` template filter instead.)
2941 (Deprecated. Use ``slashpath`` template filter instead.)
2936
2942
2937 Display paths using a slash (``/``) as the path separator. This
2943 Display paths using a slash (``/``) as the path separator. This
2938 only makes a difference on systems where the default path
2944 only makes a difference on systems where the default path
2939 separator is not the slash character (e.g. Windows uses the
2945 separator is not the slash character (e.g. Windows uses the
2940 backslash character (``\``)).
2946 backslash character (``\``)).
2941 (default: False)
2947 (default: False)
2942
2948
2943 ``statuscopies``
2949 ``statuscopies``
2944 Display copies in the status command.
2950 Display copies in the status command.
2945
2951
2946 ``ssh``
2952 ``ssh``
2947 Command to use for SSH connections. (default: ``ssh``)
2953 Command to use for SSH connections. (default: ``ssh``)
2948
2954
2949 ``ssherrorhint``
2955 ``ssherrorhint``
2950 A hint shown to the user in the case of SSH error (e.g.
2956 A hint shown to the user in the case of SSH error (e.g.
2951 ``Please see http://company/internalwiki/ssh.html``)
2957 ``Please see http://company/internalwiki/ssh.html``)
2952
2958
2953 ``strict``
2959 ``strict``
2954 Require exact command names, instead of allowing unambiguous
2960 Require exact command names, instead of allowing unambiguous
2955 abbreviations. (default: False)
2961 abbreviations. (default: False)
2956
2962
2957 ``style``
2963 ``style``
2958 Name of style to use for command output.
2964 Name of style to use for command output.
2959
2965
2960 ``supportcontact``
2966 ``supportcontact``
2961 A URL where users should report a Mercurial traceback. Use this if you are a
2967 A URL where users should report a Mercurial traceback. Use this if you are a
2962 large organisation with its own Mercurial deployment process and crash
2968 large organisation with its own Mercurial deployment process and crash
2963 reports should be addressed to your internal support.
2969 reports should be addressed to your internal support.
2964
2970
2965 ``textwidth``
2971 ``textwidth``
2966 Maximum width of help text. A longer line generated by ``hg help`` or
2972 Maximum width of help text. A longer line generated by ``hg help`` or
2967 ``hg subcommand --help`` will be broken after white space to get this
2973 ``hg subcommand --help`` will be broken after white space to get this
2968 width or the terminal width, whichever comes first.
2974 width or the terminal width, whichever comes first.
2969 A non-positive value will disable this and the terminal width will be
2975 A non-positive value will disable this and the terminal width will be
2970 used. (default: 78)
2976 used. (default: 78)
2971
2977
2972 ``timeout``
2978 ``timeout``
2973 The timeout used when a lock is held (in seconds), a negative value
2979 The timeout used when a lock is held (in seconds), a negative value
2974 means no timeout. (default: 600)
2980 means no timeout. (default: 600)
2975
2981
2976 ``timeout.warn``
2982 ``timeout.warn``
2977 Time (in seconds) before a warning is printed about held lock. A negative
2983 Time (in seconds) before a warning is printed about held lock. A negative
2978 value means no warning. (default: 0)
2984 value means no warning. (default: 0)
2979
2985
2980 ``traceback``
2986 ``traceback``
2981 Mercurial always prints a traceback when an unknown exception
2987 Mercurial always prints a traceback when an unknown exception
2982 occurs. Setting this to True will make Mercurial print a traceback
2988 occurs. Setting this to True will make Mercurial print a traceback
2983 on all exceptions, even those recognized by Mercurial (such as
2989 on all exceptions, even those recognized by Mercurial (such as
2984 IOError or MemoryError). (default: False)
2990 IOError or MemoryError). (default: False)
2985
2991
2986 ``tweakdefaults``
2992 ``tweakdefaults``
2987
2993
2988 By default Mercurial's behavior changes very little from release
2994 By default Mercurial's behavior changes very little from release
2989 to release, but over time the recommended config settings
2995 to release, but over time the recommended config settings
2990 shift. Enable this config to opt in to get automatic tweaks to
2996 shift. Enable this config to opt in to get automatic tweaks to
2991 Mercurial's behavior over time. This config setting will have no
2997 Mercurial's behavior over time. This config setting will have no
2992 effect if ``HGPLAIN`` is set or ``HGPLAINEXCEPT`` is set and does
2998 effect if ``HGPLAIN`` is set or ``HGPLAINEXCEPT`` is set and does
2993 not include ``tweakdefaults``. (default: False)
2999 not include ``tweakdefaults``. (default: False)
2994
3000
2995 It currently means::
3001 It currently means::
2996
3002
2997 .. tweakdefaultsmarker
3003 .. tweakdefaultsmarker
2998
3004
2999 ``username``
3005 ``username``
3000 The committer of a changeset created when running "commit".
3006 The committer of a changeset created when running "commit".
3001 Typically a person's name and email address, e.g. ``Fred Widget
3007 Typically a person's name and email address, e.g. ``Fred Widget
3002 <fred@example.com>``. Environment variables in the
3008 <fred@example.com>``. Environment variables in the
3003 username are expanded.
3009 username are expanded.
3004
3010
3005 (default: ``$EMAIL`` or ``username@hostname``. If the username in
3011 (default: ``$EMAIL`` or ``username@hostname``. If the username in
3006 hgrc is empty, e.g. if the system admin set ``username =`` in the
3012 hgrc is empty, e.g. if the system admin set ``username =`` in the
3007 system hgrc, it has to be specified manually or in a different
3013 system hgrc, it has to be specified manually or in a different
3008 hgrc file)
3014 hgrc file)
3009
3015
3010 ``verbose``
3016 ``verbose``
3011 Increase the amount of output printed. (default: False)
3017 Increase the amount of output printed. (default: False)
3012
3018
3013
3019
3014 ``usage``
3020 ``usage``
3015 ---------
3021 ---------
3016
3022
3017 ``repository-role``
3023 ``repository-role``
3018 What this repository is used for.
3024 What this repository is used for.
3019
3025
3020 This is used to adjust behavior and performance to best fit the repository purpose.
3026 This is used to adjust behavior and performance to best fit the repository purpose.
3021
3027
3022 Currently recognised values are:
3028 Currently recognised values are:
3023
3029
3024 - ``default``: an all purpose repository
3030 - ``default``: an all purpose repository
3025
3031
3026 ``resources``
3032 ``resources``
3027 How aggressive Mercurial can be with resource usage:
3033 How aggressive Mercurial can be with resource usage:
3028
3034
3029 Currently recognised values are:
3035 Currently recognised values are:
3030
3036
3031 - ``default``: the default value currently is equivalent to medium,
3037 - ``default``: the default value currently is equivalent to medium,
3032
3038
3033 - ``high``: allows for higher cpu, memory and disk-space usage to improve
3039 - ``high``: allows for higher cpu, memory and disk-space usage to improve
3034 performance of some operations.
3040 performance of some operations.
3035
3041
3036 - ``medium``: aims at a moderate resource usage,
3042 - ``medium``: aims at a moderate resource usage,
3037
3043
3038 - ``low``: reduces resources usage when possible, decreasing overall
3044 - ``low``: reduces resources usage when possible, decreasing overall
3039 performance.
3045 performance.
3040
3046
3041 For finer configuration, see also `usage.resources.cpu`,
3047 For finer configuration, see also `usage.resources.cpu`,
3042 `usage.resources.disk` and `usage.resources.memory`.
3048 `usage.resources.disk` and `usage.resources.memory`.
3043
3049
3044 ``resources.cpu``
3050 ``resources.cpu``
3045 How aggressive Mercurial can be in terms of cpu usage:
3051 How aggressive Mercurial can be in terms of cpu usage:
3046
3052
3047 Currently recognised values are:
3053 Currently recognised values are:
3048
3054
3049 - ``default``: the default value, inherits the value from `usage.resources`,
3055 - ``default``: the default value, inherits the value from `usage.resources`,
3050
3056
3051 - ``high``: allows for more aggressive cpu usage, improving storage quality
3057 - ``high``: allows for more aggressive cpu usage, improving storage quality
3052 and the performance of some operations at the expense of machine load
3058 and the performance of some operations at the expense of machine load
3053
3059
3054 - `medium`: aims at a moderate cpu usage,
3060 - `medium`: aims at a moderate cpu usage,
3055
3061
3056 - `low`: reduces cpu usage when possible, potentially at the expense of
3062 - `low`: reduces cpu usage when possible, potentially at the expense of
3057 slower operations, increased storage and exchange payload.
3063 slower operations, increased storage and exchange payload.
3058
3064
3059 ``resources.disk``
3065 ``resources.disk``
3060 How aggressive Mercurial can be in terms of disk usage:
3066 How aggressive Mercurial can be in terms of disk usage:
3061
3067
3062 Currently recognised values are::
3068 Currently recognised values are::
3063 - ``default``: the default value, inherits the value from `usage.resources`,
3069 - ``default``: the default value, inherits the value from `usage.resources`,
3064
3070
3065 - ``high``: allows for more disk space usage where it can improve performance,
3071 - ``high``: allows for more disk space usage where it can improve performance,
3066
3072
3067 - ``medium``: aims at a moderate disk usage,
3073 - ``medium``: aims at a moderate disk usage,
3068
3074
3069 - ``low``: reduces disk usage when possible, decreasing performance in some
3075 - ``low``: reduces disk usage when possible, decreasing performance in some
3070 occasion.
3076 occasion.
3071
3077
3072 ``resources.memory``
3078 ``resources.memory``
3073 How aggressive Mercurial can be in terms of memory usage:
3079 How aggressive Mercurial can be in terms of memory usage:
3074
3080
3075 Currently recognised values are::
3081 Currently recognised values are::
3076
3082
3077 - ``default``: the default value, inherits the value from `usage.resources`,
3083 - ``default``: the default value, inherits the value from `usage.resources`,
3078
3084
3079 - ``high``: allows for more aggressive memory usage to improve overall
3085 - ``high``: allows for more aggressive memory usage to improve overall
3080 performance,
3086 performance,
3081
3087
3082 - ``medium``: aims at a moderate memory usage,
3088 - ``medium``: aims at a moderate memory usage,
3083
3089
3084 - ``low``: reduces memory usage when possible at the cost of overall
3090 - ``low``: reduces memory usage when possible at the cost of overall
3085 performance.
3091 performance.
3086
3092
3087
3093
3088 ``command-templates``
3094 ``command-templates``
3089 ---------------------
3095 ---------------------
3090
3096
3091 Templates used for customizing the output of commands.
3097 Templates used for customizing the output of commands.
3092
3098
3093 ``graphnode``
3099 ``graphnode``
3094 The template used to print changeset nodes in an ASCII revision graph.
3100 The template used to print changeset nodes in an ASCII revision graph.
3095 (default: ``{graphnode}``)
3101 (default: ``{graphnode}``)
3096
3102
3097 ``log``
3103 ``log``
3098 Template string for commands that print changesets.
3104 Template string for commands that print changesets.
3099
3105
3100 ``mergemarker``
3106 ``mergemarker``
3101 The template used to print the commit description next to each conflict
3107 The template used to print the commit description next to each conflict
3102 marker during merge conflicts. See :hg:`help templates` for the template
3108 marker during merge conflicts. See :hg:`help templates` for the template
3103 format.
3109 format.
3104
3110
3105 Defaults to showing the hash, tags, branches, bookmarks, author, and
3111 Defaults to showing the hash, tags, branches, bookmarks, author, and
3106 the first line of the commit description.
3112 the first line of the commit description.
3107
3113
3108 If you use non-ASCII characters in names for tags, branches, bookmarks,
3114 If you use non-ASCII characters in names for tags, branches, bookmarks,
3109 authors, and/or commit descriptions, you must pay attention to encodings of
3115 authors, and/or commit descriptions, you must pay attention to encodings of
3110 managed files. At template expansion, non-ASCII characters use the encoding
3116 managed files. At template expansion, non-ASCII characters use the encoding
3111 specified by the ``--encoding`` global option, ``HGENCODING`` or other
3117 specified by the ``--encoding`` global option, ``HGENCODING`` or other
3112 environment variables that govern your locale. If the encoding of the merge
3118 environment variables that govern your locale. If the encoding of the merge
3113 markers is different from the encoding of the merged files,
3119 markers is different from the encoding of the merged files,
3114 serious problems may occur.
3120 serious problems may occur.
3115
3121
3116 Can be overridden per-merge-tool, see the ``[merge-tools]`` section.
3122 Can be overridden per-merge-tool, see the ``[merge-tools]`` section.
3117
3123
3118 ``oneline-summary``
3124 ``oneline-summary``
3119 A template used by `hg rebase` and other commands for showing a one-line
3125 A template used by `hg rebase` and other commands for showing a one-line
3120 summary of a commit. If the template configured here is longer than one
3126 summary of a commit. If the template configured here is longer than one
3121 line, then only the first line is used.
3127 line, then only the first line is used.
3122
3128
3123 The template can be overridden per command by defining a template in
3129 The template can be overridden per command by defining a template in
3124 `oneline-summary.<command>`, where `<command>` can be e.g. "rebase".
3130 `oneline-summary.<command>`, where `<command>` can be e.g. "rebase".
3125
3131
3126 ``pre-merge-tool-output``
3132 ``pre-merge-tool-output``
3127 A template that is printed before executing an external merge tool. This can
3133 A template that is printed before executing an external merge tool. This can
3128 be used to print out additional context that might be useful to have during
3134 be used to print out additional context that might be useful to have during
3129 the conflict resolution, such as the description of the various commits
3135 the conflict resolution, such as the description of the various commits
3130 involved or bookmarks/tags.
3136 involved or bookmarks/tags.
3131
3137
3132 Additional information is available in the ``local`, ``base``, and ``other``
3138 Additional information is available in the ``local`, ``base``, and ``other``
3133 dicts. For example: ``{local.label}``, ``{base.name}``, or
3139 dicts. For example: ``{local.label}``, ``{base.name}``, or
3134 ``{other.islink}``.
3140 ``{other.islink}``.
3135
3141
3136
3142
3137 ``web``
3143 ``web``
3138 -------
3144 -------
3139
3145
3140 Web interface configuration. The settings in this section apply to
3146 Web interface configuration. The settings in this section apply to
3141 both the builtin webserver (started by :hg:`serve`) and the script you
3147 both the builtin webserver (started by :hg:`serve`) and the script you
3142 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
3148 run through a webserver (``hgweb.cgi`` and the derivatives for FastCGI
3143 and WSGI).
3149 and WSGI).
3144
3150
3145 The Mercurial webserver does no authentication (it does not prompt for
3151 The Mercurial webserver does no authentication (it does not prompt for
3146 usernames and passwords to validate *who* users are), but it does do
3152 usernames and passwords to validate *who* users are), but it does do
3147 authorization (it grants or denies access for *authenticated users*
3153 authorization (it grants or denies access for *authenticated users*
3148 based on settings in this section). You must either configure your
3154 based on settings in this section). You must either configure your
3149 webserver to do authentication for you, or disable the authorization
3155 webserver to do authentication for you, or disable the authorization
3150 checks.
3156 checks.
3151
3157
3152 For a quick setup in a trusted environment, e.g., a private LAN, where
3158 For a quick setup in a trusted environment, e.g., a private LAN, where
3153 you want it to accept pushes from anybody, you can use the following
3159 you want it to accept pushes from anybody, you can use the following
3154 command line::
3160 command line::
3155
3161
3156 $ hg --config web.allow-push=* --config web.push_ssl=False serve
3162 $ hg --config web.allow-push=* --config web.push_ssl=False serve
3157
3163
3158 Note that this will allow anybody to push anything to the server and
3164 Note that this will allow anybody to push anything to the server and
3159 that this should not be used for public servers.
3165 that this should not be used for public servers.
3160
3166
3161 The full set of options is:
3167 The full set of options is:
3162
3168
3163 ``accesslog``
3169 ``accesslog``
3164 Where to output the access log. (default: stdout)
3170 Where to output the access log. (default: stdout)
3165
3171
3166 ``address``
3172 ``address``
3167 Interface address to bind to. (default: all)
3173 Interface address to bind to. (default: all)
3168
3174
3169 ``allow-archive``
3175 ``allow-archive``
3170 List of archive format (bz2, gz, zip) allowed for downloading.
3176 List of archive format (bz2, gz, zip) allowed for downloading.
3171 (default: empty)
3177 (default: empty)
3172
3178
3173 ``allowbz2``
3179 ``allowbz2``
3174 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
3180 (DEPRECATED) Whether to allow .tar.bz2 downloading of repository
3175 revisions.
3181 revisions.
3176 (default: False)
3182 (default: False)
3177
3183
3178 ``allowgz``
3184 ``allowgz``
3179 (DEPRECATED) Whether to allow .tar.gz downloading of repository
3185 (DEPRECATED) Whether to allow .tar.gz downloading of repository
3180 revisions.
3186 revisions.
3181 (default: False)
3187 (default: False)
3182
3188
3183 ``allow-pull``
3189 ``allow-pull``
3184 Whether to allow pulling from the repository. (default: True)
3190 Whether to allow pulling from the repository. (default: True)
3185
3191
3186 ``allow-push``
3192 ``allow-push``
3187 Whether to allow pushing to the repository. If empty or not set,
3193 Whether to allow pushing to the repository. If empty or not set,
3188 pushing is not allowed. If the special value ``*``, any remote
3194 pushing is not allowed. If the special value ``*``, any remote
3189 user can push, including unauthenticated users. Otherwise, the
3195 user can push, including unauthenticated users. Otherwise, the
3190 remote user must have been authenticated, and the authenticated
3196 remote user must have been authenticated, and the authenticated
3191 user name must be present in this list. The contents of the
3197 user name must be present in this list. The contents of the
3192 allow-push list are examined after the deny_push list.
3198 allow-push list are examined after the deny_push list.
3193
3199
3194 ``allow_read``
3200 ``allow_read``
3195 If the user has not already been denied repository access due to
3201 If the user has not already been denied repository access due to
3196 the contents of deny_read, this list determines whether to grant
3202 the contents of deny_read, this list determines whether to grant
3197 repository access to the user. If this list is not empty, and the
3203 repository access to the user. If this list is not empty, and the
3198 user is unauthenticated or not present in the list, then access is
3204 user is unauthenticated or not present in the list, then access is
3199 denied for the user. If the list is empty or not set, then access
3205 denied for the user. If the list is empty or not set, then access
3200 is permitted to all users by default. Setting allow_read to the
3206 is permitted to all users by default. Setting allow_read to the
3201 special value ``*`` is equivalent to it not being set (i.e. access
3207 special value ``*`` is equivalent to it not being set (i.e. access
3202 is permitted to all users). The contents of the allow_read list are
3208 is permitted to all users). The contents of the allow_read list are
3203 examined after the deny_read list.
3209 examined after the deny_read list.
3204
3210
3205 ``allowzip``
3211 ``allowzip``
3206 (DEPRECATED) Whether to allow .zip downloading of repository
3212 (DEPRECATED) Whether to allow .zip downloading of repository
3207 revisions. This feature creates temporary files.
3213 revisions. This feature creates temporary files.
3208 (default: False)
3214 (default: False)
3209
3215
3210 ``archivesubrepos``
3216 ``archivesubrepos``
3211 Whether to recurse into subrepositories when archiving.
3217 Whether to recurse into subrepositories when archiving.
3212 (default: False)
3218 (default: False)
3213
3219
3214 ``baseurl``
3220 ``baseurl``
3215 Base URL to use when publishing URLs in other locations, so
3221 Base URL to use when publishing URLs in other locations, so
3216 third-party tools like email notification hooks can construct
3222 third-party tools like email notification hooks can construct
3217 URLs. Example: ``http://hgserver/repos/``.
3223 URLs. Example: ``http://hgserver/repos/``.
3218
3224
3219 ``cacerts``
3225 ``cacerts``
3220 Path to file containing a list of PEM encoded certificate
3226 Path to file containing a list of PEM encoded certificate
3221 authority certificates. Environment variables and ``~user``
3227 authority certificates. Environment variables and ``~user``
3222 constructs are expanded in the filename. If specified on the
3228 constructs are expanded in the filename. If specified on the
3223 client, then it will verify the identity of remote HTTPS servers
3229 client, then it will verify the identity of remote HTTPS servers
3224 with these certificates.
3230 with these certificates.
3225
3231
3226 To disable SSL verification temporarily, specify ``--insecure`` from
3232 To disable SSL verification temporarily, specify ``--insecure`` from
3227 command line.
3233 command line.
3228
3234
3229 You can use OpenSSL's CA certificate file if your platform has
3235 You can use OpenSSL's CA certificate file if your platform has
3230 one. On most Linux systems this will be
3236 one. On most Linux systems this will be
3231 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
3237 ``/etc/ssl/certs/ca-certificates.crt``. Otherwise you will have to
3232 generate this file manually. The form must be as follows::
3238 generate this file manually. The form must be as follows::
3233
3239
3234 -----BEGIN CERTIFICATE-----
3240 -----BEGIN CERTIFICATE-----
3235 ... (certificate in base64 PEM encoding) ...
3241 ... (certificate in base64 PEM encoding) ...
3236 -----END CERTIFICATE-----
3242 -----END CERTIFICATE-----
3237 -----BEGIN CERTIFICATE-----
3243 -----BEGIN CERTIFICATE-----
3238 ... (certificate in base64 PEM encoding) ...
3244 ... (certificate in base64 PEM encoding) ...
3239 -----END CERTIFICATE-----
3245 -----END CERTIFICATE-----
3240
3246
3241 ``cache``
3247 ``cache``
3242 Whether to support caching in hgweb. (default: True)
3248 Whether to support caching in hgweb. (default: True)
3243
3249
3244 ``certificate``
3250 ``certificate``
3245 Certificate to use when running :hg:`serve`.
3251 Certificate to use when running :hg:`serve`.
3246
3252
3247 ``collapse``
3253 ``collapse``
3248 With ``descend`` enabled, repositories in subdirectories are shown at
3254 With ``descend`` enabled, repositories in subdirectories are shown at
3249 a single level alongside repositories in the current path. With
3255 a single level alongside repositories in the current path. With
3250 ``collapse`` also enabled, repositories residing at a deeper level than
3256 ``collapse`` also enabled, repositories residing at a deeper level than
3251 the current path are grouped behind navigable directory entries that
3257 the current path are grouped behind navigable directory entries that
3252 lead to the locations of these repositories. In effect, this setting
3258 lead to the locations of these repositories. In effect, this setting
3253 collapses each collection of repositories found within a subdirectory
3259 collapses each collection of repositories found within a subdirectory
3254 into a single entry for that subdirectory. (default: False)
3260 into a single entry for that subdirectory. (default: False)
3255
3261
3256 ``comparisoncontext``
3262 ``comparisoncontext``
3257 Number of lines of context to show in side-by-side file comparison. If
3263 Number of lines of context to show in side-by-side file comparison. If
3258 negative or the value ``full``, whole files are shown. (default: 5)
3264 negative or the value ``full``, whole files are shown. (default: 5)
3259
3265
3260 This setting can be overridden by a ``context`` request parameter to the
3266 This setting can be overridden by a ``context`` request parameter to the
3261 ``comparison`` command, taking the same values.
3267 ``comparison`` command, taking the same values.
3262
3268
3263 ``contact``
3269 ``contact``
3264 Name or email address of the person in charge of the repository.
3270 Name or email address of the person in charge of the repository.
3265 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
3271 (default: ui.username or ``$EMAIL`` or "unknown" if unset or empty)
3266
3272
3267 ``csp``
3273 ``csp``
3268 Send a ``Content-Security-Policy`` HTTP header with this value.
3274 Send a ``Content-Security-Policy`` HTTP header with this value.
3269
3275
3270 The value may contain a special string ``%nonce%``, which will be replaced
3276 The value may contain a special string ``%nonce%``, which will be replaced
3271 by a randomly-generated one-time use value. If the value contains
3277 by a randomly-generated one-time use value. If the value contains
3272 ``%nonce%``, ``web.cache`` will be disabled, as caching undermines the
3278 ``%nonce%``, ``web.cache`` will be disabled, as caching undermines the
3273 one-time property of the nonce. This nonce will also be inserted into
3279 one-time property of the nonce. This nonce will also be inserted into
3274 ``<script>`` elements containing inline JavaScript.
3280 ``<script>`` elements containing inline JavaScript.
3275
3281
3276 Note: lots of HTML content sent by the server is derived from repository
3282 Note: lots of HTML content sent by the server is derived from repository
3277 data. Please consider the potential for malicious repository data to
3283 data. Please consider the potential for malicious repository data to
3278 "inject" itself into generated HTML content as part of your security
3284 "inject" itself into generated HTML content as part of your security
3279 threat model.
3285 threat model.
3280
3286
3281 ``deny_push``
3287 ``deny_push``
3282 Whether to deny pushing to the repository. If empty or not set,
3288 Whether to deny pushing to the repository. If empty or not set,
3283 push is not denied. If the special value ``*``, all remote users are
3289 push is not denied. If the special value ``*``, all remote users are
3284 denied push. Otherwise, unauthenticated users are all denied, and
3290 denied push. Otherwise, unauthenticated users are all denied, and
3285 any authenticated user name present in this list is also denied. The
3291 any authenticated user name present in this list is also denied. The
3286 contents of the deny_push list are examined before the allow-push list.
3292 contents of the deny_push list are examined before the allow-push list.
3287
3293
3288 ``deny_read``
3294 ``deny_read``
3289 Whether to deny reading/viewing of the repository. If this list is
3295 Whether to deny reading/viewing of the repository. If this list is
3290 not empty, unauthenticated users are all denied, and any
3296 not empty, unauthenticated users are all denied, and any
3291 authenticated user name present in this list is also denied access to
3297 authenticated user name present in this list is also denied access to
3292 the repository. If set to the special value ``*``, all remote users
3298 the repository. If set to the special value ``*``, all remote users
3293 are denied access (rarely needed ;). If deny_read is empty or not set,
3299 are denied access (rarely needed ;). If deny_read is empty or not set,
3294 the determination of repository access depends on the presence and
3300 the determination of repository access depends on the presence and
3295 content of the allow_read list (see description). If both
3301 content of the allow_read list (see description). If both
3296 deny_read and allow_read are empty or not set, then access is
3302 deny_read and allow_read are empty or not set, then access is
3297 permitted to all users by default. If the repository is being
3303 permitted to all users by default. If the repository is being
3298 served via hgwebdir, denied users will not be able to see it in
3304 served via hgwebdir, denied users will not be able to see it in
3299 the list of repositories. The contents of the deny_read list have
3305 the list of repositories. The contents of the deny_read list have
3300 priority over (are examined before) the contents of the allow_read
3306 priority over (are examined before) the contents of the allow_read
3301 list.
3307 list.
3302
3308
3303 ``descend``
3309 ``descend``
3304 hgwebdir indexes will not descend into subdirectories. Only repositories
3310 hgwebdir indexes will not descend into subdirectories. Only repositories
3305 directly in the current path will be shown (other repositories are still
3311 directly in the current path will be shown (other repositories are still
3306 available from the index corresponding to their containing path).
3312 available from the index corresponding to their containing path).
3307
3313
3308 ``description``
3314 ``description``
3309 Textual description of the repository's purpose or contents.
3315 Textual description of the repository's purpose or contents.
3310 (default: "unknown")
3316 (default: "unknown")
3311
3317
3312 ``encoding``
3318 ``encoding``
3313 Character encoding name. (default: the current locale charset)
3319 Character encoding name. (default: the current locale charset)
3314 Example: "UTF-8".
3320 Example: "UTF-8".
3315
3321
3316 ``errorlog``
3322 ``errorlog``
3317 Where to output the error log. (default: stderr)
3323 Where to output the error log. (default: stderr)
3318
3324
3319 ``guessmime``
3325 ``guessmime``
3320 Control MIME types for raw download of file content.
3326 Control MIME types for raw download of file content.
3321 Set to True to let hgweb guess the content type from the file
3327 Set to True to let hgweb guess the content type from the file
3322 extension. This will serve HTML files as ``text/html`` and might
3328 extension. This will serve HTML files as ``text/html`` and might
3323 allow cross-site scripting attacks when serving untrusted
3329 allow cross-site scripting attacks when serving untrusted
3324 repositories. (default: False)
3330 repositories. (default: False)
3325
3331
3326 ``hidden``
3332 ``hidden``
3327 Whether to hide the repository in the hgwebdir index.
3333 Whether to hide the repository in the hgwebdir index.
3328 (default: False)
3334 (default: False)
3329
3335
3330 ``ipv6``
3336 ``ipv6``
3331 Whether to use IPv6. (default: False)
3337 Whether to use IPv6. (default: False)
3332
3338
3333 ``labels``
3339 ``labels``
3334 List of string *labels* associated with the repository.
3340 List of string *labels* associated with the repository.
3335
3341
3336 Labels are exposed as a template keyword and can be used to customize
3342 Labels are exposed as a template keyword and can be used to customize
3337 output. e.g. the ``index`` template can group or filter repositories
3343 output. e.g. the ``index`` template can group or filter repositories
3338 by labels and the ``summary`` template can display additional content
3344 by labels and the ``summary`` template can display additional content
3339 if a specific label is present.
3345 if a specific label is present.
3340
3346
3341 ``logoimg``
3347 ``logoimg``
3342 File name of the logo image that some templates display on each page.
3348 File name of the logo image that some templates display on each page.
3343 The file name is relative to ``staticurl``. That is, the full path to
3349 The file name is relative to ``staticurl``. That is, the full path to
3344 the logo image is "staticurl/logoimg".
3350 the logo image is "staticurl/logoimg".
3345 If unset, ``hglogo.png`` will be used.
3351 If unset, ``hglogo.png`` will be used.
3346
3352
3347 ``logourl``
3353 ``logourl``
3348 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
3354 Base URL to use for logos. If unset, ``https://mercurial-scm.org/``
3349 will be used.
3355 will be used.
3350
3356
3351 ``maxchanges``
3357 ``maxchanges``
3352 Maximum number of changes to list on the changelog. (default: 10)
3358 Maximum number of changes to list on the changelog. (default: 10)
3353
3359
3354 ``maxfiles``
3360 ``maxfiles``
3355 Maximum number of files to list per changeset. (default: 10)
3361 Maximum number of files to list per changeset. (default: 10)
3356
3362
3357 ``maxshortchanges``
3363 ``maxshortchanges``
3358 Maximum number of changes to list on the shortlog, graph or filelog
3364 Maximum number of changes to list on the shortlog, graph or filelog
3359 pages. (default: 60)
3365 pages. (default: 60)
3360
3366
3361 ``name``
3367 ``name``
3362 Repository name to use in the web interface.
3368 Repository name to use in the web interface.
3363 (default: current working directory)
3369 (default: current working directory)
3364
3370
3365 ``port``
3371 ``port``
3366 Port to listen on. (default: 8000)
3372 Port to listen on. (default: 8000)
3367
3373
3368 ``prefix``
3374 ``prefix``
3369 Prefix path to serve from. (default: '' (server root))
3375 Prefix path to serve from. (default: '' (server root))
3370
3376
3371 ``push_ssl``
3377 ``push_ssl``
3372 Whether to require that inbound pushes be transported over SSL to
3378 Whether to require that inbound pushes be transported over SSL to
3373 prevent password sniffing. (default: True)
3379 prevent password sniffing. (default: True)
3374
3380
3375 ``refreshinterval``
3381 ``refreshinterval``
3376 How frequently directory listings re-scan the filesystem for new
3382 How frequently directory listings re-scan the filesystem for new
3377 repositories, in seconds. This is relevant when wildcards are used
3383 repositories, in seconds. This is relevant when wildcards are used
3378 to define paths. Depending on how much filesystem traversal is
3384 to define paths. Depending on how much filesystem traversal is
3379 required, refreshing may negatively impact performance.
3385 required, refreshing may negatively impact performance.
3380
3386
3381 Values less than or equal to 0 always refresh.
3387 Values less than or equal to 0 always refresh.
3382 (default: 20)
3388 (default: 20)
3383
3389
3384 ``server-header``
3390 ``server-header``
3385 Value for HTTP ``Server`` response header.
3391 Value for HTTP ``Server`` response header.
3386
3392
3387 ``static``
3393 ``static``
3388 Directory where static files are served from.
3394 Directory where static files are served from.
3389
3395
3390 ``staticurl``
3396 ``staticurl``
3391 Base URL to use for static files. If unset, static files (e.g. the
3397 Base URL to use for static files. If unset, static files (e.g. the
3392 hgicon.png favicon) will be served by the CGI script itself. Use
3398 hgicon.png favicon) will be served by the CGI script itself. Use
3393 this setting to serve them directly with the HTTP server.
3399 this setting to serve them directly with the HTTP server.
3394 Example: ``http://hgserver/static/``.
3400 Example: ``http://hgserver/static/``.
3395
3401
3396 ``stripes``
3402 ``stripes``
3397 How many lines a "zebra stripe" should span in multi-line output.
3403 How many lines a "zebra stripe" should span in multi-line output.
3398 Set to 0 to disable. (default: 1)
3404 Set to 0 to disable. (default: 1)
3399
3405
3400 ``style``
3406 ``style``
3401 Which template map style to use. The available options are the names of
3407 Which template map style to use. The available options are the names of
3402 subdirectories in the HTML templates path. (default: ``paper``)
3408 subdirectories in the HTML templates path. (default: ``paper``)
3403 Example: ``monoblue``.
3409 Example: ``monoblue``.
3404
3410
3405 ``templates``
3411 ``templates``
3406 Where to find the HTML templates. The default path to the HTML templates
3412 Where to find the HTML templates. The default path to the HTML templates
3407 can be obtained from ``hg debuginstall``.
3413 can be obtained from ``hg debuginstall``.
3408
3414
3409 ``websub``
3415 ``websub``
3410 ----------
3416 ----------
3411
3417
3412 Web substitution filter definition. You can use this section to
3418 Web substitution filter definition. You can use this section to
3413 define a set of regular expression substitution patterns which
3419 define a set of regular expression substitution patterns which
3414 let you automatically modify the hgweb server output.
3420 let you automatically modify the hgweb server output.
3415
3421
3416 The default hgweb templates only apply these substitution patterns
3422 The default hgweb templates only apply these substitution patterns
3417 on the revision description fields. You can apply them anywhere
3423 on the revision description fields. You can apply them anywhere
3418 you want when you create your own templates by adding calls to the
3424 you want when you create your own templates by adding calls to the
3419 "websub" filter (usually after calling the "escape" filter).
3425 "websub" filter (usually after calling the "escape" filter).
3420
3426
3421 This can be used, for example, to convert issue references to links
3427 This can be used, for example, to convert issue references to links
3422 to your issue tracker, or to convert "markdown-like" syntax into
3428 to your issue tracker, or to convert "markdown-like" syntax into
3423 HTML (see the examples below).
3429 HTML (see the examples below).
3424
3430
3425 Each entry in this section names a substitution filter.
3431 Each entry in this section names a substitution filter.
3426 The value of each entry defines the substitution expression itself.
3432 The value of each entry defines the substitution expression itself.
3427 The websub expressions follow the old interhg extension syntax,
3433 The websub expressions follow the old interhg extension syntax,
3428 which in turn imitates the Unix sed replacement syntax::
3434 which in turn imitates the Unix sed replacement syntax::
3429
3435
3430 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
3436 patternname = s/SEARCH_REGEX/REPLACE_EXPRESSION/[i]
3431
3437
3432 You can use any separator other than "/". The final "i" is optional
3438 You can use any separator other than "/". The final "i" is optional
3433 and indicates that the search must be case insensitive.
3439 and indicates that the search must be case insensitive.
3434
3440
3435 Examples::
3441 Examples::
3436
3442
3437 [websub]
3443 [websub]
3438 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
3444 issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
3439 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
3445 italic = s/\b_(\S+)_\b/<i>\1<\/i>/
3440 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
3446 bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/
3441
3447
3442 ``worker``
3448 ``worker``
3443 ----------
3449 ----------
3444
3450
3445 Parallel master/worker configuration. We currently perform working
3451 Parallel master/worker configuration. We currently perform working
3446 directory updates in parallel on Unix-like systems, which greatly
3452 directory updates in parallel on Unix-like systems, which greatly
3447 helps performance.
3453 helps performance.
3448
3454
3449 ``enabled``
3455 ``enabled``
3450 Whether to enable workers code to be used.
3456 Whether to enable workers code to be used.
3451 (default: true)
3457 (default: true)
3452
3458
3453 ``numcpus``
3459 ``numcpus``
3454 Number of CPUs to use for parallel operations. A zero or
3460 Number of CPUs to use for parallel operations. A zero or
3455 negative value is treated as ``use the default``.
3461 negative value is treated as ``use the default``.
3456 (default: 4 or the number of CPUs on the system, whichever is larger)
3462 (default: 4 or the number of CPUs on the system, whichever is larger)
3457
3463
3458 ``backgroundclose``
3464 ``backgroundclose``
3459 Whether to enable closing file handles on background threads during certain
3465 Whether to enable closing file handles on background threads during certain
3460 operations. Some platforms aren't very efficient at closing file
3466 operations. Some platforms aren't very efficient at closing file
3461 handles that have been written or appended to. By performing file closing
3467 handles that have been written or appended to. By performing file closing
3462 on background threads, file write rate can increase substantially.
3468 on background threads, file write rate can increase substantially.
3463 (default: true on Windows, false elsewhere)
3469 (default: true on Windows, false elsewhere)
3464
3470
3465 ``backgroundcloseminfilecount``
3471 ``backgroundcloseminfilecount``
3466 Minimum number of files required to trigger background file closing.
3472 Minimum number of files required to trigger background file closing.
3467 Operations not writing this many files won't start background close
3473 Operations not writing this many files won't start background close
3468 threads.
3474 threads.
3469 (default: 2048)
3475 (default: 2048)
3470
3476
3471 ``backgroundclosemaxqueue``
3477 ``backgroundclosemaxqueue``
3472 The maximum number of opened file handles waiting to be closed in the
3478 The maximum number of opened file handles waiting to be closed in the
3473 background. This option only has an effect if ``backgroundclose`` is
3479 background. This option only has an effect if ``backgroundclose`` is
3474 enabled.
3480 enabled.
3475 (default: 384)
3481 (default: 384)
3476
3482
3477 ``backgroundclosethreadcount``
3483 ``backgroundclosethreadcount``
3478 Number of threads to process background file closes. Only relevant if
3484 Number of threads to process background file closes. Only relevant if
3479 ``backgroundclose`` is enabled.
3485 ``backgroundclose`` is enabled.
3480 (default: 4)
3486 (default: 4)
General Comments 0
You need to be logged in to leave comments. Login now