##// END OF EJS Templates
profiling: move default mode to "real" time...
Boris Feld -
r40436:db0dba2d default
parent child Browse files
Show More
@@ -1,1427 +1,1427 b''
1 1 # configitems.py - centralized declaration of configuration option
2 2 #
3 3 # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net>
4 4 #
5 5 # This software may be used and distributed according to the terms of the
6 6 # GNU General Public License version 2 or any later version.
7 7
8 8 from __future__ import absolute_import
9 9
10 10 import functools
11 11 import re
12 12
13 13 from . import (
14 14 encoding,
15 15 error,
16 16 )
17 17
18 18 def loadconfigtable(ui, extname, configtable):
19 19 """update config item known to the ui with the extension ones"""
20 20 for section, items in sorted(configtable.items()):
21 21 knownitems = ui._knownconfig.setdefault(section, itemregister())
22 22 knownkeys = set(knownitems)
23 23 newkeys = set(items)
24 24 for key in sorted(knownkeys & newkeys):
25 25 msg = "extension '%s' overwrite config item '%s.%s'"
26 26 msg %= (extname, section, key)
27 27 ui.develwarn(msg, config='warn-config')
28 28
29 29 knownitems.update(items)
30 30
31 31 class configitem(object):
32 32 """represent a known config item
33 33
34 34 :section: the official config section where to find this item,
35 35 :name: the official name within the section,
36 36 :default: default value for this item,
37 37 :alias: optional list of tuples as alternatives,
38 38 :generic: this is a generic definition, match name using regular expression.
39 39 """
40 40
41 41 def __init__(self, section, name, default=None, alias=(),
42 42 generic=False, priority=0):
43 43 self.section = section
44 44 self.name = name
45 45 self.default = default
46 46 self.alias = list(alias)
47 47 self.generic = generic
48 48 self.priority = priority
49 49 self._re = None
50 50 if generic:
51 51 self._re = re.compile(self.name)
52 52
53 53 class itemregister(dict):
54 54 """A specialized dictionary that can handle wild-card selection"""
55 55
56 56 def __init__(self):
57 57 super(itemregister, self).__init__()
58 58 self._generics = set()
59 59
60 60 def update(self, other):
61 61 super(itemregister, self).update(other)
62 62 self._generics.update(other._generics)
63 63
64 64 def __setitem__(self, key, item):
65 65 super(itemregister, self).__setitem__(key, item)
66 66 if item.generic:
67 67 self._generics.add(item)
68 68
69 69 def get(self, key):
70 70 baseitem = super(itemregister, self).get(key)
71 71 if baseitem is not None and not baseitem.generic:
72 72 return baseitem
73 73
74 74 # search for a matching generic item
75 75 generics = sorted(self._generics, key=(lambda x: (x.priority, x.name)))
76 76 for item in generics:
77 77 # we use 'match' instead of 'search' to make the matching simpler
78 78 # for people unfamiliar with regular expression. Having the match
79 79 # rooted to the start of the string will produce less surprising
80 80 # result for user writing simple regex for sub-attribute.
81 81 #
82 82 # For example using "color\..*" match produces an unsurprising
83 83 # result, while using search could suddenly match apparently
84 84 # unrelated configuration that happens to contains "color."
85 85 # anywhere. This is a tradeoff where we favor requiring ".*" on
86 86 # some match to avoid the need to prefix most pattern with "^".
87 87 # The "^" seems more error prone.
88 88 if item._re.match(key):
89 89 return item
90 90
91 91 return None
92 92
93 93 coreitems = {}
94 94
95 95 def _register(configtable, *args, **kwargs):
96 96 item = configitem(*args, **kwargs)
97 97 section = configtable.setdefault(item.section, itemregister())
98 98 if item.name in section:
99 99 msg = "duplicated config item registration for '%s.%s'"
100 100 raise error.ProgrammingError(msg % (item.section, item.name))
101 101 section[item.name] = item
102 102
103 103 # special value for case where the default is derived from other values
104 104 dynamicdefault = object()
105 105
106 106 # Registering actual config items
107 107
108 108 def getitemregister(configtable):
109 109 f = functools.partial(_register, configtable)
110 110 # export pseudo enum as configitem.*
111 111 f.dynamicdefault = dynamicdefault
112 112 return f
113 113
114 114 coreconfigitem = getitemregister(coreitems)
115 115
116 116 coreconfigitem('alias', '.*',
117 117 default=dynamicdefault,
118 118 generic=True,
119 119 )
120 120 coreconfigitem('annotate', 'nodates',
121 121 default=False,
122 122 )
123 123 coreconfigitem('annotate', 'showfunc',
124 124 default=False,
125 125 )
126 126 coreconfigitem('annotate', 'unified',
127 127 default=None,
128 128 )
129 129 coreconfigitem('annotate', 'git',
130 130 default=False,
131 131 )
132 132 coreconfigitem('annotate', 'ignorews',
133 133 default=False,
134 134 )
135 135 coreconfigitem('annotate', 'ignorewsamount',
136 136 default=False,
137 137 )
138 138 coreconfigitem('annotate', 'ignoreblanklines',
139 139 default=False,
140 140 )
141 141 coreconfigitem('annotate', 'ignorewseol',
142 142 default=False,
143 143 )
144 144 coreconfigitem('annotate', 'nobinary',
145 145 default=False,
146 146 )
147 147 coreconfigitem('annotate', 'noprefix',
148 148 default=False,
149 149 )
150 150 coreconfigitem('annotate', 'word-diff',
151 151 default=False,
152 152 )
153 153 coreconfigitem('auth', 'cookiefile',
154 154 default=None,
155 155 )
156 156 # bookmarks.pushing: internal hack for discovery
157 157 coreconfigitem('bookmarks', 'pushing',
158 158 default=list,
159 159 )
160 160 # bundle.mainreporoot: internal hack for bundlerepo
161 161 coreconfigitem('bundle', 'mainreporoot',
162 162 default='',
163 163 )
164 164 coreconfigitem('censor', 'policy',
165 165 default='abort',
166 166 )
167 167 coreconfigitem('chgserver', 'idletimeout',
168 168 default=3600,
169 169 )
170 170 coreconfigitem('chgserver', 'skiphash',
171 171 default=False,
172 172 )
173 173 coreconfigitem('cmdserver', 'log',
174 174 default=None,
175 175 )
176 176 coreconfigitem('color', '.*',
177 177 default=None,
178 178 generic=True,
179 179 )
180 180 coreconfigitem('color', 'mode',
181 181 default='auto',
182 182 )
183 183 coreconfigitem('color', 'pagermode',
184 184 default=dynamicdefault,
185 185 )
186 186 coreconfigitem('commands', 'grep.all-files',
187 187 default=False,
188 188 )
189 189 coreconfigitem('commands', 'resolve.confirm',
190 190 default=False,
191 191 )
192 192 coreconfigitem('commands', 'resolve.explicit-re-merge',
193 193 default=False,
194 194 )
195 195 coreconfigitem('commands', 'resolve.mark-check',
196 196 default='none',
197 197 )
198 198 coreconfigitem('commands', 'show.aliasprefix',
199 199 default=list,
200 200 )
201 201 coreconfigitem('commands', 'status.relative',
202 202 default=False,
203 203 )
204 204 coreconfigitem('commands', 'status.skipstates',
205 205 default=[],
206 206 )
207 207 coreconfigitem('commands', 'status.terse',
208 208 default='',
209 209 )
210 210 coreconfigitem('commands', 'status.verbose',
211 211 default=False,
212 212 )
213 213 coreconfigitem('commands', 'update.check',
214 214 default=None,
215 215 )
216 216 coreconfigitem('commands', 'update.requiredest',
217 217 default=False,
218 218 )
219 219 coreconfigitem('committemplate', '.*',
220 220 default=None,
221 221 generic=True,
222 222 )
223 223 coreconfigitem('convert', 'bzr.saverev',
224 224 default=True,
225 225 )
226 226 coreconfigitem('convert', 'cvsps.cache',
227 227 default=True,
228 228 )
229 229 coreconfigitem('convert', 'cvsps.fuzz',
230 230 default=60,
231 231 )
232 232 coreconfigitem('convert', 'cvsps.logencoding',
233 233 default=None,
234 234 )
235 235 coreconfigitem('convert', 'cvsps.mergefrom',
236 236 default=None,
237 237 )
238 238 coreconfigitem('convert', 'cvsps.mergeto',
239 239 default=None,
240 240 )
241 241 coreconfigitem('convert', 'git.committeractions',
242 242 default=lambda: ['messagedifferent'],
243 243 )
244 244 coreconfigitem('convert', 'git.extrakeys',
245 245 default=list,
246 246 )
247 247 coreconfigitem('convert', 'git.findcopiesharder',
248 248 default=False,
249 249 )
250 250 coreconfigitem('convert', 'git.remoteprefix',
251 251 default='remote',
252 252 )
253 253 coreconfigitem('convert', 'git.renamelimit',
254 254 default=400,
255 255 )
256 256 coreconfigitem('convert', 'git.saverev',
257 257 default=True,
258 258 )
259 259 coreconfigitem('convert', 'git.similarity',
260 260 default=50,
261 261 )
262 262 coreconfigitem('convert', 'git.skipsubmodules',
263 263 default=False,
264 264 )
265 265 coreconfigitem('convert', 'hg.clonebranches',
266 266 default=False,
267 267 )
268 268 coreconfigitem('convert', 'hg.ignoreerrors',
269 269 default=False,
270 270 )
271 271 coreconfigitem('convert', 'hg.revs',
272 272 default=None,
273 273 )
274 274 coreconfigitem('convert', 'hg.saverev',
275 275 default=False,
276 276 )
277 277 coreconfigitem('convert', 'hg.sourcename',
278 278 default=None,
279 279 )
280 280 coreconfigitem('convert', 'hg.startrev',
281 281 default=None,
282 282 )
283 283 coreconfigitem('convert', 'hg.tagsbranch',
284 284 default='default',
285 285 )
286 286 coreconfigitem('convert', 'hg.usebranchnames',
287 287 default=True,
288 288 )
289 289 coreconfigitem('convert', 'ignoreancestorcheck',
290 290 default=False,
291 291 )
292 292 coreconfigitem('convert', 'localtimezone',
293 293 default=False,
294 294 )
295 295 coreconfigitem('convert', 'p4.encoding',
296 296 default=dynamicdefault,
297 297 )
298 298 coreconfigitem('convert', 'p4.startrev',
299 299 default=0,
300 300 )
301 301 coreconfigitem('convert', 'skiptags',
302 302 default=False,
303 303 )
304 304 coreconfigitem('convert', 'svn.debugsvnlog',
305 305 default=True,
306 306 )
307 307 coreconfigitem('convert', 'svn.trunk',
308 308 default=None,
309 309 )
310 310 coreconfigitem('convert', 'svn.tags',
311 311 default=None,
312 312 )
313 313 coreconfigitem('convert', 'svn.branches',
314 314 default=None,
315 315 )
316 316 coreconfigitem('convert', 'svn.startrev',
317 317 default=0,
318 318 )
319 319 coreconfigitem('debug', 'dirstate.delaywrite',
320 320 default=0,
321 321 )
322 322 coreconfigitem('defaults', '.*',
323 323 default=None,
324 324 generic=True,
325 325 )
326 326 coreconfigitem('devel', 'all-warnings',
327 327 default=False,
328 328 )
329 329 coreconfigitem('devel', 'bundle2.debug',
330 330 default=False,
331 331 )
332 332 coreconfigitem('devel', 'cache-vfs',
333 333 default=None,
334 334 )
335 335 coreconfigitem('devel', 'check-locks',
336 336 default=False,
337 337 )
338 338 coreconfigitem('devel', 'check-relroot',
339 339 default=False,
340 340 )
341 341 coreconfigitem('devel', 'default-date',
342 342 default=None,
343 343 )
344 344 coreconfigitem('devel', 'deprec-warn',
345 345 default=False,
346 346 )
347 347 coreconfigitem('devel', 'disableloaddefaultcerts',
348 348 default=False,
349 349 )
350 350 coreconfigitem('devel', 'warn-empty-changegroup',
351 351 default=False,
352 352 )
353 353 coreconfigitem('devel', 'legacy.exchange',
354 354 default=list,
355 355 )
356 356 coreconfigitem('devel', 'servercafile',
357 357 default='',
358 358 )
359 359 coreconfigitem('devel', 'serverexactprotocol',
360 360 default='',
361 361 )
362 362 coreconfigitem('devel', 'serverrequirecert',
363 363 default=False,
364 364 )
365 365 coreconfigitem('devel', 'strip-obsmarkers',
366 366 default=True,
367 367 )
368 368 coreconfigitem('devel', 'warn-config',
369 369 default=None,
370 370 )
371 371 coreconfigitem('devel', 'warn-config-default',
372 372 default=None,
373 373 )
374 374 coreconfigitem('devel', 'user.obsmarker',
375 375 default=None,
376 376 )
377 377 coreconfigitem('devel', 'warn-config-unknown',
378 378 default=None,
379 379 )
380 380 coreconfigitem('devel', 'debug.copies',
381 381 default=False,
382 382 )
383 383 coreconfigitem('devel', 'debug.extensions',
384 384 default=False,
385 385 )
386 386 coreconfigitem('devel', 'debug.peer-request',
387 387 default=False,
388 388 )
389 389 coreconfigitem('diff', 'nodates',
390 390 default=False,
391 391 )
392 392 coreconfigitem('diff', 'showfunc',
393 393 default=False,
394 394 )
395 395 coreconfigitem('diff', 'unified',
396 396 default=None,
397 397 )
398 398 coreconfigitem('diff', 'git',
399 399 default=False,
400 400 )
401 401 coreconfigitem('diff', 'ignorews',
402 402 default=False,
403 403 )
404 404 coreconfigitem('diff', 'ignorewsamount',
405 405 default=False,
406 406 )
407 407 coreconfigitem('diff', 'ignoreblanklines',
408 408 default=False,
409 409 )
410 410 coreconfigitem('diff', 'ignorewseol',
411 411 default=False,
412 412 )
413 413 coreconfigitem('diff', 'nobinary',
414 414 default=False,
415 415 )
416 416 coreconfigitem('diff', 'noprefix',
417 417 default=False,
418 418 )
419 419 coreconfigitem('diff', 'word-diff',
420 420 default=False,
421 421 )
422 422 coreconfigitem('email', 'bcc',
423 423 default=None,
424 424 )
425 425 coreconfigitem('email', 'cc',
426 426 default=None,
427 427 )
428 428 coreconfigitem('email', 'charsets',
429 429 default=list,
430 430 )
431 431 coreconfigitem('email', 'from',
432 432 default=None,
433 433 )
434 434 coreconfigitem('email', 'method',
435 435 default='smtp',
436 436 )
437 437 coreconfigitem('email', 'reply-to',
438 438 default=None,
439 439 )
440 440 coreconfigitem('email', 'to',
441 441 default=None,
442 442 )
443 443 coreconfigitem('experimental', 'archivemetatemplate',
444 444 default=dynamicdefault,
445 445 )
446 446 coreconfigitem('experimental', 'bundle-phases',
447 447 default=False,
448 448 )
449 449 coreconfigitem('experimental', 'bundle2-advertise',
450 450 default=True,
451 451 )
452 452 coreconfigitem('experimental', 'bundle2-output-capture',
453 453 default=False,
454 454 )
455 455 coreconfigitem('experimental', 'bundle2.pushback',
456 456 default=False,
457 457 )
458 458 coreconfigitem('experimental', 'bundle2lazylocking',
459 459 default=False,
460 460 )
461 461 coreconfigitem('experimental', 'bundlecomplevel',
462 462 default=None,
463 463 )
464 464 coreconfigitem('experimental', 'bundlecomplevel.bzip2',
465 465 default=None,
466 466 )
467 467 coreconfigitem('experimental', 'bundlecomplevel.gzip',
468 468 default=None,
469 469 )
470 470 coreconfigitem('experimental', 'bundlecomplevel.none',
471 471 default=None,
472 472 )
473 473 coreconfigitem('experimental', 'bundlecomplevel.zstd',
474 474 default=None,
475 475 )
476 476 coreconfigitem('experimental', 'changegroup3',
477 477 default=False,
478 478 )
479 479 coreconfigitem('experimental', 'clientcompressionengines',
480 480 default=list,
481 481 )
482 482 coreconfigitem('experimental', 'copytrace',
483 483 default='on',
484 484 )
485 485 coreconfigitem('experimental', 'copytrace.movecandidateslimit',
486 486 default=100,
487 487 )
488 488 coreconfigitem('experimental', 'copytrace.sourcecommitlimit',
489 489 default=100,
490 490 )
491 491 coreconfigitem('experimental', 'crecordtest',
492 492 default=None,
493 493 )
494 494 coreconfigitem('experimental', 'directaccess',
495 495 default=False,
496 496 )
497 497 coreconfigitem('experimental', 'directaccess.revnums',
498 498 default=False,
499 499 )
500 500 coreconfigitem('experimental', 'editortmpinhg',
501 501 default=False,
502 502 )
503 503 coreconfigitem('experimental', 'evolution',
504 504 default=list,
505 505 )
506 506 coreconfigitem('experimental', 'evolution.allowdivergence',
507 507 default=False,
508 508 alias=[('experimental', 'allowdivergence')]
509 509 )
510 510 coreconfigitem('experimental', 'evolution.allowunstable',
511 511 default=None,
512 512 )
513 513 coreconfigitem('experimental', 'evolution.createmarkers',
514 514 default=None,
515 515 )
516 516 coreconfigitem('experimental', 'evolution.effect-flags',
517 517 default=True,
518 518 alias=[('experimental', 'effect-flags')]
519 519 )
520 520 coreconfigitem('experimental', 'evolution.exchange',
521 521 default=None,
522 522 )
523 523 coreconfigitem('experimental', 'evolution.bundle-obsmarker',
524 524 default=False,
525 525 )
526 526 coreconfigitem('experimental', 'evolution.report-instabilities',
527 527 default=True,
528 528 )
529 529 coreconfigitem('experimental', 'evolution.track-operation',
530 530 default=True,
531 531 )
532 532 coreconfigitem('experimental', 'maxdeltachainspan',
533 533 default=-1,
534 534 )
535 535 coreconfigitem('experimental', 'mergetempdirprefix',
536 536 default=None,
537 537 )
538 538 coreconfigitem('experimental', 'mmapindexthreshold',
539 539 default=None,
540 540 )
541 541 coreconfigitem('experimental', 'narrow',
542 542 default=False,
543 543 )
544 544 coreconfigitem('experimental', 'nonnormalparanoidcheck',
545 545 default=False,
546 546 )
547 547 coreconfigitem('experimental', 'exportableenviron',
548 548 default=list,
549 549 )
550 550 coreconfigitem('experimental', 'extendedheader.index',
551 551 default=None,
552 552 )
553 553 coreconfigitem('experimental', 'extendedheader.similarity',
554 554 default=False,
555 555 )
556 556 coreconfigitem('experimental', 'format.compression',
557 557 default='zlib',
558 558 )
559 559 coreconfigitem('experimental', 'graphshorten',
560 560 default=False,
561 561 )
562 562 coreconfigitem('experimental', 'graphstyle.parent',
563 563 default=dynamicdefault,
564 564 )
565 565 coreconfigitem('experimental', 'graphstyle.missing',
566 566 default=dynamicdefault,
567 567 )
568 568 coreconfigitem('experimental', 'graphstyle.grandparent',
569 569 default=dynamicdefault,
570 570 )
571 571 coreconfigitem('experimental', 'hook-track-tags',
572 572 default=False,
573 573 )
574 574 coreconfigitem('experimental', 'httppeer.advertise-v2',
575 575 default=False,
576 576 )
577 577 coreconfigitem('experimental', 'httppeer.v2-encoder-order',
578 578 default=None,
579 579 )
580 580 coreconfigitem('experimental', 'httppostargs',
581 581 default=False,
582 582 )
583 583 coreconfigitem('experimental', 'mergedriver',
584 584 default=None,
585 585 )
586 586 coreconfigitem('experimental', 'nointerrupt', default=False)
587 587 coreconfigitem('experimental', 'nointerrupt-interactiveonly', default=True)
588 588
589 589 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
590 590 default=False,
591 591 )
592 592 coreconfigitem('experimental', 'remotenames',
593 593 default=False,
594 594 )
595 595 coreconfigitem('experimental', 'removeemptydirs',
596 596 default=True,
597 597 )
598 598 coreconfigitem('experimental', 'revisions.prefixhexnode',
599 599 default=False,
600 600 )
601 601 coreconfigitem('experimental', 'revlogv2',
602 602 default=None,
603 603 )
604 604 coreconfigitem('experimental', 'revisions.disambiguatewithin',
605 605 default=None,
606 606 )
607 607 coreconfigitem('experimental', 'server.filesdata.recommended-batch-size',
608 608 default=50000,
609 609 )
610 610 coreconfigitem('experimental', 'server.manifestdata.recommended-batch-size',
611 611 default=100000,
612 612 )
613 613 coreconfigitem('experimental.server', 'stream-narrow-clones',
614 614 default=False,
615 615 )
616 616 coreconfigitem('experimental', 'single-head-per-branch',
617 617 default=False,
618 618 )
619 619 coreconfigitem('experimental', 'sshserver.support-v2',
620 620 default=False,
621 621 )
622 622 coreconfigitem('experimental', 'sparse-read',
623 623 default=False,
624 624 )
625 625 coreconfigitem('experimental', 'sparse-read.density-threshold',
626 626 default=0.50,
627 627 )
628 628 coreconfigitem('experimental', 'sparse-read.min-gap-size',
629 629 default='65K',
630 630 )
631 631 coreconfigitem('experimental', 'treemanifest',
632 632 default=False,
633 633 )
634 634 coreconfigitem('experimental', 'update.atomic-file',
635 635 default=False,
636 636 )
637 637 coreconfigitem('experimental', 'sshpeer.advertise-v2',
638 638 default=False,
639 639 )
640 640 coreconfigitem('experimental', 'web.apiserver',
641 641 default=False,
642 642 )
643 643 coreconfigitem('experimental', 'web.api.http-v2',
644 644 default=False,
645 645 )
646 646 coreconfigitem('experimental', 'web.api.debugreflect',
647 647 default=False,
648 648 )
649 649 coreconfigitem('experimental', 'worker.wdir-get-thread-safe',
650 650 default=False,
651 651 )
652 652 coreconfigitem('experimental', 'xdiff',
653 653 default=False,
654 654 )
655 655 coreconfigitem('extensions', '.*',
656 656 default=None,
657 657 generic=True,
658 658 )
659 659 coreconfigitem('extdata', '.*',
660 660 default=None,
661 661 generic=True,
662 662 )
663 663 coreconfigitem('format', 'chunkcachesize',
664 664 default=None,
665 665 )
666 666 coreconfigitem('format', 'dotencode',
667 667 default=True,
668 668 )
669 669 coreconfigitem('format', 'generaldelta',
670 670 default=False,
671 671 )
672 672 coreconfigitem('format', 'manifestcachesize',
673 673 default=None,
674 674 )
675 675 coreconfigitem('format', 'maxchainlen',
676 676 default=dynamicdefault,
677 677 )
678 678 coreconfigitem('format', 'obsstore-version',
679 679 default=None,
680 680 )
681 681 coreconfigitem('format', 'sparse-revlog',
682 682 default=False,
683 683 )
684 684 coreconfigitem('format', 'usefncache',
685 685 default=True,
686 686 )
687 687 coreconfigitem('format', 'usegeneraldelta',
688 688 default=True,
689 689 )
690 690 coreconfigitem('format', 'usestore',
691 691 default=True,
692 692 )
693 693 coreconfigitem('format', 'internal-phase',
694 694 default=False,
695 695 )
696 696 coreconfigitem('fsmonitor', 'warn_when_unused',
697 697 default=True,
698 698 )
699 699 coreconfigitem('fsmonitor', 'warn_update_file_count',
700 700 default=50000,
701 701 )
702 702 coreconfigitem('hooks', '.*',
703 703 default=dynamicdefault,
704 704 generic=True,
705 705 )
706 706 coreconfigitem('hgweb-paths', '.*',
707 707 default=list,
708 708 generic=True,
709 709 )
710 710 coreconfigitem('hostfingerprints', '.*',
711 711 default=list,
712 712 generic=True,
713 713 )
714 714 coreconfigitem('hostsecurity', 'ciphers',
715 715 default=None,
716 716 )
717 717 coreconfigitem('hostsecurity', 'disabletls10warning',
718 718 default=False,
719 719 )
720 720 coreconfigitem('hostsecurity', 'minimumprotocol',
721 721 default=dynamicdefault,
722 722 )
723 723 coreconfigitem('hostsecurity', '.*:minimumprotocol$',
724 724 default=dynamicdefault,
725 725 generic=True,
726 726 )
727 727 coreconfigitem('hostsecurity', '.*:ciphers$',
728 728 default=dynamicdefault,
729 729 generic=True,
730 730 )
731 731 coreconfigitem('hostsecurity', '.*:fingerprints$',
732 732 default=list,
733 733 generic=True,
734 734 )
735 735 coreconfigitem('hostsecurity', '.*:verifycertsfile$',
736 736 default=None,
737 737 generic=True,
738 738 )
739 739
740 740 coreconfigitem('http_proxy', 'always',
741 741 default=False,
742 742 )
743 743 coreconfigitem('http_proxy', 'host',
744 744 default=None,
745 745 )
746 746 coreconfigitem('http_proxy', 'no',
747 747 default=list,
748 748 )
749 749 coreconfigitem('http_proxy', 'passwd',
750 750 default=None,
751 751 )
752 752 coreconfigitem('http_proxy', 'user',
753 753 default=None,
754 754 )
755 755
756 756 coreconfigitem('http', 'timeout',
757 757 default=None,
758 758 )
759 759
760 760 coreconfigitem('logtoprocess', 'commandexception',
761 761 default=None,
762 762 )
763 763 coreconfigitem('logtoprocess', 'commandfinish',
764 764 default=None,
765 765 )
766 766 coreconfigitem('logtoprocess', 'command',
767 767 default=None,
768 768 )
769 769 coreconfigitem('logtoprocess', 'develwarn',
770 770 default=None,
771 771 )
772 772 coreconfigitem('logtoprocess', 'uiblocked',
773 773 default=None,
774 774 )
775 775 coreconfigitem('merge', 'checkunknown',
776 776 default='abort',
777 777 )
778 778 coreconfigitem('merge', 'checkignored',
779 779 default='abort',
780 780 )
781 781 coreconfigitem('experimental', 'merge.checkpathconflicts',
782 782 default=False,
783 783 )
784 784 coreconfigitem('merge', 'followcopies',
785 785 default=True,
786 786 )
787 787 coreconfigitem('merge', 'on-failure',
788 788 default='continue',
789 789 )
790 790 coreconfigitem('merge', 'preferancestor',
791 791 default=lambda: ['*'],
792 792 )
793 793 coreconfigitem('merge', 'strict-capability-check',
794 794 default=False,
795 795 )
796 796 coreconfigitem('merge-tools', '.*',
797 797 default=None,
798 798 generic=True,
799 799 )
800 800 coreconfigitem('merge-tools', br'.*\.args$',
801 801 default="$local $base $other",
802 802 generic=True,
803 803 priority=-1,
804 804 )
805 805 coreconfigitem('merge-tools', br'.*\.binary$',
806 806 default=False,
807 807 generic=True,
808 808 priority=-1,
809 809 )
810 810 coreconfigitem('merge-tools', br'.*\.check$',
811 811 default=list,
812 812 generic=True,
813 813 priority=-1,
814 814 )
815 815 coreconfigitem('merge-tools', br'.*\.checkchanged$',
816 816 default=False,
817 817 generic=True,
818 818 priority=-1,
819 819 )
820 820 coreconfigitem('merge-tools', br'.*\.executable$',
821 821 default=dynamicdefault,
822 822 generic=True,
823 823 priority=-1,
824 824 )
825 825 coreconfigitem('merge-tools', br'.*\.fixeol$',
826 826 default=False,
827 827 generic=True,
828 828 priority=-1,
829 829 )
830 830 coreconfigitem('merge-tools', br'.*\.gui$',
831 831 default=False,
832 832 generic=True,
833 833 priority=-1,
834 834 )
835 835 coreconfigitem('merge-tools', br'.*\.mergemarkers$',
836 836 default='basic',
837 837 generic=True,
838 838 priority=-1,
839 839 )
840 840 coreconfigitem('merge-tools', br'.*\.mergemarkertemplate$',
841 841 default=dynamicdefault, # take from ui.mergemarkertemplate
842 842 generic=True,
843 843 priority=-1,
844 844 )
845 845 coreconfigitem('merge-tools', br'.*\.priority$',
846 846 default=0,
847 847 generic=True,
848 848 priority=-1,
849 849 )
850 850 coreconfigitem('merge-tools', br'.*\.premerge$',
851 851 default=dynamicdefault,
852 852 generic=True,
853 853 priority=-1,
854 854 )
855 855 coreconfigitem('merge-tools', br'.*\.symlink$',
856 856 default=False,
857 857 generic=True,
858 858 priority=-1,
859 859 )
860 860 coreconfigitem('pager', 'attend-.*',
861 861 default=dynamicdefault,
862 862 generic=True,
863 863 )
864 864 coreconfigitem('pager', 'ignore',
865 865 default=list,
866 866 )
867 867 coreconfigitem('pager', 'pager',
868 868 default=dynamicdefault,
869 869 )
870 870 coreconfigitem('patch', 'eol',
871 871 default='strict',
872 872 )
873 873 coreconfigitem('patch', 'fuzz',
874 874 default=2,
875 875 )
876 876 coreconfigitem('paths', 'default',
877 877 default=None,
878 878 )
879 879 coreconfigitem('paths', 'default-push',
880 880 default=None,
881 881 )
882 882 coreconfigitem('paths', '.*',
883 883 default=None,
884 884 generic=True,
885 885 )
886 886 coreconfigitem('phases', 'checksubrepos',
887 887 default='follow',
888 888 )
889 889 coreconfigitem('phases', 'new-commit',
890 890 default='draft',
891 891 )
892 892 coreconfigitem('phases', 'publish',
893 893 default=True,
894 894 )
895 895 coreconfigitem('profiling', 'enabled',
896 896 default=False,
897 897 )
898 898 coreconfigitem('profiling', 'format',
899 899 default='text',
900 900 )
901 901 coreconfigitem('profiling', 'freq',
902 902 default=1000,
903 903 )
904 904 coreconfigitem('profiling', 'limit',
905 905 default=30,
906 906 )
907 907 coreconfigitem('profiling', 'nested',
908 908 default=0,
909 909 )
910 910 coreconfigitem('profiling', 'output',
911 911 default=None,
912 912 )
913 913 coreconfigitem('profiling', 'showmax',
914 914 default=0.999,
915 915 )
916 916 coreconfigitem('profiling', 'showmin',
917 917 default=dynamicdefault,
918 918 )
919 919 coreconfigitem('profiling', 'sort',
920 920 default='inlinetime',
921 921 )
922 922 coreconfigitem('profiling', 'statformat',
923 923 default='hotpath',
924 924 )
925 925 coreconfigitem('profiling', 'time-track',
926 default='cpu',
926 default='real',
927 927 )
928 928 coreconfigitem('profiling', 'type',
929 929 default='stat',
930 930 )
931 931 coreconfigitem('progress', 'assume-tty',
932 932 default=False,
933 933 )
934 934 coreconfigitem('progress', 'changedelay',
935 935 default=1,
936 936 )
937 937 coreconfigitem('progress', 'clear-complete',
938 938 default=True,
939 939 )
940 940 coreconfigitem('progress', 'debug',
941 941 default=False,
942 942 )
943 943 coreconfigitem('progress', 'delay',
944 944 default=3,
945 945 )
946 946 coreconfigitem('progress', 'disable',
947 947 default=False,
948 948 )
949 949 coreconfigitem('progress', 'estimateinterval',
950 950 default=60.0,
951 951 )
952 952 coreconfigitem('progress', 'format',
953 953 default=lambda: ['topic', 'bar', 'number', 'estimate'],
954 954 )
955 955 coreconfigitem('progress', 'refresh',
956 956 default=0.1,
957 957 )
958 958 coreconfigitem('progress', 'width',
959 959 default=dynamicdefault,
960 960 )
961 961 coreconfigitem('push', 'pushvars.server',
962 962 default=False,
963 963 )
964 964 coreconfigitem('storage', 'new-repo-backend',
965 965 default='revlogv1',
966 966 )
967 967 coreconfigitem('storage', 'revlog.optimize-delta-parent-choice',
968 968 default=True,
969 969 alias=[('format', 'aggressivemergedeltas')],
970 970 )
971 971 coreconfigitem('server', 'bookmarks-pushkey-compat',
972 972 default=True,
973 973 )
974 974 coreconfigitem('server', 'bundle1',
975 975 default=True,
976 976 )
977 977 coreconfigitem('server', 'bundle1gd',
978 978 default=None,
979 979 )
980 980 coreconfigitem('server', 'bundle1.pull',
981 981 default=None,
982 982 )
983 983 coreconfigitem('server', 'bundle1gd.pull',
984 984 default=None,
985 985 )
986 986 coreconfigitem('server', 'bundle1.push',
987 987 default=None,
988 988 )
989 989 coreconfigitem('server', 'bundle1gd.push',
990 990 default=None,
991 991 )
992 992 coreconfigitem('server', 'bundle2.stream',
993 993 default=True,
994 994 alias=[('experimental', 'bundle2.stream')]
995 995 )
996 996 coreconfigitem('server', 'compressionengines',
997 997 default=list,
998 998 )
999 999 coreconfigitem('server', 'concurrent-push-mode',
1000 1000 default='strict',
1001 1001 )
1002 1002 coreconfigitem('server', 'disablefullbundle',
1003 1003 default=False,
1004 1004 )
1005 1005 coreconfigitem('server', 'maxhttpheaderlen',
1006 1006 default=1024,
1007 1007 )
1008 1008 coreconfigitem('server', 'pullbundle',
1009 1009 default=False,
1010 1010 )
1011 1011 coreconfigitem('server', 'preferuncompressed',
1012 1012 default=False,
1013 1013 )
1014 1014 coreconfigitem('server', 'streamunbundle',
1015 1015 default=False,
1016 1016 )
1017 1017 coreconfigitem('server', 'uncompressed',
1018 1018 default=True,
1019 1019 )
1020 1020 coreconfigitem('server', 'uncompressedallowsecret',
1021 1021 default=False,
1022 1022 )
1023 1023 coreconfigitem('server', 'validate',
1024 1024 default=False,
1025 1025 )
1026 1026 coreconfigitem('server', 'zliblevel',
1027 1027 default=-1,
1028 1028 )
1029 1029 coreconfigitem('server', 'zstdlevel',
1030 1030 default=3,
1031 1031 )
1032 1032 coreconfigitem('share', 'pool',
1033 1033 default=None,
1034 1034 )
1035 1035 coreconfigitem('share', 'poolnaming',
1036 1036 default='identity',
1037 1037 )
1038 1038 coreconfigitem('smtp', 'host',
1039 1039 default=None,
1040 1040 )
1041 1041 coreconfigitem('smtp', 'local_hostname',
1042 1042 default=None,
1043 1043 )
1044 1044 coreconfigitem('smtp', 'password',
1045 1045 default=None,
1046 1046 )
1047 1047 coreconfigitem('smtp', 'port',
1048 1048 default=dynamicdefault,
1049 1049 )
1050 1050 coreconfigitem('smtp', 'tls',
1051 1051 default='none',
1052 1052 )
1053 1053 coreconfigitem('smtp', 'username',
1054 1054 default=None,
1055 1055 )
1056 1056 coreconfigitem('sparse', 'missingwarning',
1057 1057 default=True,
1058 1058 )
1059 1059 coreconfigitem('subrepos', 'allowed',
1060 1060 default=dynamicdefault, # to make backporting simpler
1061 1061 )
1062 1062 coreconfigitem('subrepos', 'hg:allowed',
1063 1063 default=dynamicdefault,
1064 1064 )
1065 1065 coreconfigitem('subrepos', 'git:allowed',
1066 1066 default=dynamicdefault,
1067 1067 )
1068 1068 coreconfigitem('subrepos', 'svn:allowed',
1069 1069 default=dynamicdefault,
1070 1070 )
1071 1071 coreconfigitem('templates', '.*',
1072 1072 default=None,
1073 1073 generic=True,
1074 1074 )
1075 1075 coreconfigitem('trusted', 'groups',
1076 1076 default=list,
1077 1077 )
1078 1078 coreconfigitem('trusted', 'users',
1079 1079 default=list,
1080 1080 )
1081 1081 coreconfigitem('ui', '_usedassubrepo',
1082 1082 default=False,
1083 1083 )
1084 1084 coreconfigitem('ui', 'allowemptycommit',
1085 1085 default=False,
1086 1086 )
1087 1087 coreconfigitem('ui', 'archivemeta',
1088 1088 default=True,
1089 1089 )
1090 1090 coreconfigitem('ui', 'askusername',
1091 1091 default=False,
1092 1092 )
1093 1093 coreconfigitem('ui', 'clonebundlefallback',
1094 1094 default=False,
1095 1095 )
1096 1096 coreconfigitem('ui', 'clonebundleprefers',
1097 1097 default=list,
1098 1098 )
1099 1099 coreconfigitem('ui', 'clonebundles',
1100 1100 default=True,
1101 1101 )
1102 1102 coreconfigitem('ui', 'color',
1103 1103 default='auto',
1104 1104 )
1105 1105 coreconfigitem('ui', 'commitsubrepos',
1106 1106 default=False,
1107 1107 )
1108 1108 coreconfigitem('ui', 'debug',
1109 1109 default=False,
1110 1110 )
1111 1111 coreconfigitem('ui', 'debugger',
1112 1112 default=None,
1113 1113 )
1114 1114 coreconfigitem('ui', 'editor',
1115 1115 default=dynamicdefault,
1116 1116 )
1117 1117 coreconfigitem('ui', 'fallbackencoding',
1118 1118 default=None,
1119 1119 )
1120 1120 coreconfigitem('ui', 'forcecwd',
1121 1121 default=None,
1122 1122 )
1123 1123 coreconfigitem('ui', 'forcemerge',
1124 1124 default=None,
1125 1125 )
1126 1126 coreconfigitem('ui', 'formatdebug',
1127 1127 default=False,
1128 1128 )
1129 1129 coreconfigitem('ui', 'formatjson',
1130 1130 default=False,
1131 1131 )
1132 1132 coreconfigitem('ui', 'formatted',
1133 1133 default=None,
1134 1134 )
1135 1135 coreconfigitem('ui', 'graphnodetemplate',
1136 1136 default=None,
1137 1137 )
1138 1138 coreconfigitem('ui', 'history-editing-backup',
1139 1139 default=True,
1140 1140 )
1141 1141 coreconfigitem('ui', 'interactive',
1142 1142 default=None,
1143 1143 )
1144 1144 coreconfigitem('ui', 'interface',
1145 1145 default=None,
1146 1146 )
1147 1147 coreconfigitem('ui', 'interface.chunkselector',
1148 1148 default=None,
1149 1149 )
1150 1150 coreconfigitem('ui', 'large-file-limit',
1151 1151 default=10000000,
1152 1152 )
1153 1153 coreconfigitem('ui', 'logblockedtimes',
1154 1154 default=False,
1155 1155 )
1156 1156 coreconfigitem('ui', 'logtemplate',
1157 1157 default=None,
1158 1158 )
1159 1159 coreconfigitem('ui', 'merge',
1160 1160 default=None,
1161 1161 )
1162 1162 coreconfigitem('ui', 'mergemarkers',
1163 1163 default='basic',
1164 1164 )
1165 1165 coreconfigitem('ui', 'mergemarkertemplate',
1166 1166 default=('{node|short} '
1167 1167 '{ifeq(tags, "tip", "", '
1168 1168 'ifeq(tags, "", "", "{tags} "))}'
1169 1169 '{if(bookmarks, "{bookmarks} ")}'
1170 1170 '{ifeq(branch, "default", "", "{branch} ")}'
1171 1171 '- {author|user}: {desc|firstline}')
1172 1172 )
1173 1173 coreconfigitem('ui', 'nontty',
1174 1174 default=False,
1175 1175 )
1176 1176 coreconfigitem('ui', 'origbackuppath',
1177 1177 default=None,
1178 1178 )
1179 1179 coreconfigitem('ui', 'paginate',
1180 1180 default=True,
1181 1181 )
1182 1182 coreconfigitem('ui', 'patch',
1183 1183 default=None,
1184 1184 )
1185 1185 coreconfigitem('ui', 'portablefilenames',
1186 1186 default='warn',
1187 1187 )
1188 1188 coreconfigitem('ui', 'promptecho',
1189 1189 default=False,
1190 1190 )
1191 1191 coreconfigitem('ui', 'quiet',
1192 1192 default=False,
1193 1193 )
1194 1194 coreconfigitem('ui', 'quietbookmarkmove',
1195 1195 default=False,
1196 1196 )
1197 1197 coreconfigitem('ui', 'remotecmd',
1198 1198 default='hg',
1199 1199 )
1200 1200 coreconfigitem('ui', 'report_untrusted',
1201 1201 default=True,
1202 1202 )
1203 1203 coreconfigitem('ui', 'rollback',
1204 1204 default=True,
1205 1205 )
1206 1206 coreconfigitem('ui', 'signal-safe-lock',
1207 1207 default=True,
1208 1208 )
1209 1209 coreconfigitem('ui', 'slash',
1210 1210 default=False,
1211 1211 )
1212 1212 coreconfigitem('ui', 'ssh',
1213 1213 default='ssh',
1214 1214 )
1215 1215 coreconfigitem('ui', 'ssherrorhint',
1216 1216 default=None,
1217 1217 )
1218 1218 coreconfigitem('ui', 'statuscopies',
1219 1219 default=False,
1220 1220 )
1221 1221 coreconfigitem('ui', 'strict',
1222 1222 default=False,
1223 1223 )
1224 1224 coreconfigitem('ui', 'style',
1225 1225 default='',
1226 1226 )
1227 1227 coreconfigitem('ui', 'supportcontact',
1228 1228 default=None,
1229 1229 )
1230 1230 coreconfigitem('ui', 'textwidth',
1231 1231 default=78,
1232 1232 )
1233 1233 coreconfigitem('ui', 'timeout',
1234 1234 default='600',
1235 1235 )
1236 1236 coreconfigitem('ui', 'timeout.warn',
1237 1237 default=0,
1238 1238 )
1239 1239 coreconfigitem('ui', 'traceback',
1240 1240 default=False,
1241 1241 )
1242 1242 coreconfigitem('ui', 'tweakdefaults',
1243 1243 default=False,
1244 1244 )
1245 1245 coreconfigitem('ui', 'username',
1246 1246 alias=[('ui', 'user')]
1247 1247 )
1248 1248 coreconfigitem('ui', 'verbose',
1249 1249 default=False,
1250 1250 )
1251 1251 coreconfigitem('verify', 'skipflags',
1252 1252 default=None,
1253 1253 )
1254 1254 coreconfigitem('web', 'allowbz2',
1255 1255 default=False,
1256 1256 )
1257 1257 coreconfigitem('web', 'allowgz',
1258 1258 default=False,
1259 1259 )
1260 1260 coreconfigitem('web', 'allow-pull',
1261 1261 alias=[('web', 'allowpull')],
1262 1262 default=True,
1263 1263 )
1264 1264 coreconfigitem('web', 'allow-push',
1265 1265 alias=[('web', 'allow_push')],
1266 1266 default=list,
1267 1267 )
1268 1268 coreconfigitem('web', 'allowzip',
1269 1269 default=False,
1270 1270 )
1271 1271 coreconfigitem('web', 'archivesubrepos',
1272 1272 default=False,
1273 1273 )
1274 1274 coreconfigitem('web', 'cache',
1275 1275 default=True,
1276 1276 )
1277 1277 coreconfigitem('web', 'contact',
1278 1278 default=None,
1279 1279 )
1280 1280 coreconfigitem('web', 'deny_push',
1281 1281 default=list,
1282 1282 )
1283 1283 coreconfigitem('web', 'guessmime',
1284 1284 default=False,
1285 1285 )
1286 1286 coreconfigitem('web', 'hidden',
1287 1287 default=False,
1288 1288 )
1289 1289 coreconfigitem('web', 'labels',
1290 1290 default=list,
1291 1291 )
1292 1292 coreconfigitem('web', 'logoimg',
1293 1293 default='hglogo.png',
1294 1294 )
1295 1295 coreconfigitem('web', 'logourl',
1296 1296 default='https://mercurial-scm.org/',
1297 1297 )
1298 1298 coreconfigitem('web', 'accesslog',
1299 1299 default='-',
1300 1300 )
1301 1301 coreconfigitem('web', 'address',
1302 1302 default='',
1303 1303 )
1304 1304 coreconfigitem('web', 'allow-archive',
1305 1305 alias=[('web', 'allow_archive')],
1306 1306 default=list,
1307 1307 )
1308 1308 coreconfigitem('web', 'allow_read',
1309 1309 default=list,
1310 1310 )
1311 1311 coreconfigitem('web', 'baseurl',
1312 1312 default=None,
1313 1313 )
1314 1314 coreconfigitem('web', 'cacerts',
1315 1315 default=None,
1316 1316 )
1317 1317 coreconfigitem('web', 'certificate',
1318 1318 default=None,
1319 1319 )
1320 1320 coreconfigitem('web', 'collapse',
1321 1321 default=False,
1322 1322 )
1323 1323 coreconfigitem('web', 'csp',
1324 1324 default=None,
1325 1325 )
1326 1326 coreconfigitem('web', 'deny_read',
1327 1327 default=list,
1328 1328 )
1329 1329 coreconfigitem('web', 'descend',
1330 1330 default=True,
1331 1331 )
1332 1332 coreconfigitem('web', 'description',
1333 1333 default="",
1334 1334 )
1335 1335 coreconfigitem('web', 'encoding',
1336 1336 default=lambda: encoding.encoding,
1337 1337 )
1338 1338 coreconfigitem('web', 'errorlog',
1339 1339 default='-',
1340 1340 )
1341 1341 coreconfigitem('web', 'ipv6',
1342 1342 default=False,
1343 1343 )
1344 1344 coreconfigitem('web', 'maxchanges',
1345 1345 default=10,
1346 1346 )
1347 1347 coreconfigitem('web', 'maxfiles',
1348 1348 default=10,
1349 1349 )
1350 1350 coreconfigitem('web', 'maxshortchanges',
1351 1351 default=60,
1352 1352 )
1353 1353 coreconfigitem('web', 'motd',
1354 1354 default='',
1355 1355 )
1356 1356 coreconfigitem('web', 'name',
1357 1357 default=dynamicdefault,
1358 1358 )
1359 1359 coreconfigitem('web', 'port',
1360 1360 default=8000,
1361 1361 )
1362 1362 coreconfigitem('web', 'prefix',
1363 1363 default='',
1364 1364 )
1365 1365 coreconfigitem('web', 'push_ssl',
1366 1366 default=True,
1367 1367 )
1368 1368 coreconfigitem('web', 'refreshinterval',
1369 1369 default=20,
1370 1370 )
1371 1371 coreconfigitem('web', 'server-header',
1372 1372 default=None,
1373 1373 )
1374 1374 coreconfigitem('web', 'static',
1375 1375 default=None,
1376 1376 )
1377 1377 coreconfigitem('web', 'staticurl',
1378 1378 default=None,
1379 1379 )
1380 1380 coreconfigitem('web', 'stripes',
1381 1381 default=1,
1382 1382 )
1383 1383 coreconfigitem('web', 'style',
1384 1384 default='paper',
1385 1385 )
1386 1386 coreconfigitem('web', 'templates',
1387 1387 default=None,
1388 1388 )
1389 1389 coreconfigitem('web', 'view',
1390 1390 default='served',
1391 1391 )
1392 1392 coreconfigitem('worker', 'backgroundclose',
1393 1393 default=dynamicdefault,
1394 1394 )
1395 1395 # Windows defaults to a limit of 512 open files. A buffer of 128
1396 1396 # should give us enough headway.
1397 1397 coreconfigitem('worker', 'backgroundclosemaxqueue',
1398 1398 default=384,
1399 1399 )
1400 1400 coreconfigitem('worker', 'backgroundcloseminfilecount',
1401 1401 default=2048,
1402 1402 )
1403 1403 coreconfigitem('worker', 'backgroundclosethreadcount',
1404 1404 default=4,
1405 1405 )
1406 1406 coreconfigitem('worker', 'enabled',
1407 1407 default=True,
1408 1408 )
1409 1409 coreconfigitem('worker', 'numcpus',
1410 1410 default=None,
1411 1411 )
1412 1412
1413 1413 # Rebase related configuration moved to core because other extension are doing
1414 1414 # strange things. For example, shelve import the extensions to reuse some bit
1415 1415 # without formally loading it.
1416 1416 coreconfigitem('commands', 'rebase.requiredest',
1417 1417 default=False,
1418 1418 )
1419 1419 coreconfigitem('experimental', 'rebaseskipobsolete',
1420 1420 default=True,
1421 1421 )
1422 1422 coreconfigitem('rebase', 'singletransaction',
1423 1423 default=False,
1424 1424 )
1425 1425 coreconfigitem('rebase', 'experimental.inmemory',
1426 1426 default=False,
1427 1427 )
General Comments 0
You need to be logged in to leave comments. Login now