##// END OF EJS Templates
configitems: make all regular expressions bytes and not native str...
Augie Fackler -
r34892:6b77c13a default
parent child Browse files
Show More
@@ -1,1133 +1,1133 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 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 return functools.partial(_register, configtable)
110 110
111 111 coreconfigitem = getitemregister(coreitems)
112 112
113 113 coreconfigitem('alias', '.*',
114 114 default=None,
115 115 generic=True,
116 116 )
117 117 coreconfigitem('annotate', 'nodates',
118 118 default=False,
119 119 )
120 120 coreconfigitem('annotate', 'showfunc',
121 121 default=False,
122 122 )
123 123 coreconfigitem('annotate', 'unified',
124 124 default=None,
125 125 )
126 126 coreconfigitem('annotate', 'git',
127 127 default=False,
128 128 )
129 129 coreconfigitem('annotate', 'ignorews',
130 130 default=False,
131 131 )
132 132 coreconfigitem('annotate', 'ignorewsamount',
133 133 default=False,
134 134 )
135 135 coreconfigitem('annotate', 'ignoreblanklines',
136 136 default=False,
137 137 )
138 138 coreconfigitem('annotate', 'ignorewseol',
139 139 default=False,
140 140 )
141 141 coreconfigitem('annotate', 'nobinary',
142 142 default=False,
143 143 )
144 144 coreconfigitem('annotate', 'noprefix',
145 145 default=False,
146 146 )
147 147 coreconfigitem('auth', 'cookiefile',
148 148 default=None,
149 149 )
150 150 # bookmarks.pushing: internal hack for discovery
151 151 coreconfigitem('bookmarks', 'pushing',
152 152 default=list,
153 153 )
154 154 # bundle.mainreporoot: internal hack for bundlerepo
155 155 coreconfigitem('bundle', 'mainreporoot',
156 156 default='',
157 157 )
158 158 # bundle.reorder: experimental config
159 159 coreconfigitem('bundle', 'reorder',
160 160 default='auto',
161 161 )
162 162 coreconfigitem('censor', 'policy',
163 163 default='abort',
164 164 )
165 165 coreconfigitem('chgserver', 'idletimeout',
166 166 default=3600,
167 167 )
168 168 coreconfigitem('chgserver', 'skiphash',
169 169 default=False,
170 170 )
171 171 coreconfigitem('cmdserver', 'log',
172 172 default=None,
173 173 )
174 174 coreconfigitem('color', '.*',
175 175 default=None,
176 176 generic=True,
177 177 )
178 178 coreconfigitem('color', 'mode',
179 179 default='auto',
180 180 )
181 181 coreconfigitem('color', 'pagermode',
182 182 default=dynamicdefault,
183 183 )
184 184 coreconfigitem('commands', 'show.aliasprefix',
185 185 default=list,
186 186 )
187 187 coreconfigitem('commands', 'status.relative',
188 188 default=False,
189 189 )
190 190 coreconfigitem('commands', 'status.skipstates',
191 191 default=[],
192 192 )
193 193 coreconfigitem('commands', 'status.verbose',
194 194 default=False,
195 195 )
196 196 coreconfigitem('commands', 'update.check',
197 197 default=None,
198 198 # Deprecated, remove after 4.4 release
199 199 alias=[('experimental', 'updatecheck')]
200 200 )
201 201 coreconfigitem('commands', 'update.requiredest',
202 202 default=False,
203 203 )
204 204 coreconfigitem('committemplate', '.*',
205 205 default=None,
206 206 generic=True,
207 207 )
208 208 coreconfigitem('debug', 'dirstate.delaywrite',
209 209 default=0,
210 210 )
211 211 coreconfigitem('defaults', '.*',
212 212 default=None,
213 213 generic=True,
214 214 )
215 215 coreconfigitem('devel', 'all-warnings',
216 216 default=False,
217 217 )
218 218 coreconfigitem('devel', 'bundle2.debug',
219 219 default=False,
220 220 )
221 221 coreconfigitem('devel', 'cache-vfs',
222 222 default=None,
223 223 )
224 224 coreconfigitem('devel', 'check-locks',
225 225 default=False,
226 226 )
227 227 coreconfigitem('devel', 'check-relroot',
228 228 default=False,
229 229 )
230 230 coreconfigitem('devel', 'default-date',
231 231 default=None,
232 232 )
233 233 coreconfigitem('devel', 'deprec-warn',
234 234 default=False,
235 235 )
236 236 coreconfigitem('devel', 'disableloaddefaultcerts',
237 237 default=False,
238 238 )
239 239 coreconfigitem('devel', 'warn-empty-changegroup',
240 240 default=False,
241 241 )
242 242 coreconfigitem('devel', 'legacy.exchange',
243 243 default=list,
244 244 )
245 245 coreconfigitem('devel', 'servercafile',
246 246 default='',
247 247 )
248 248 coreconfigitem('devel', 'serverexactprotocol',
249 249 default='',
250 250 )
251 251 coreconfigitem('devel', 'serverrequirecert',
252 252 default=False,
253 253 )
254 254 coreconfigitem('devel', 'strip-obsmarkers',
255 255 default=True,
256 256 )
257 257 coreconfigitem('devel', 'warn-config',
258 258 default=None,
259 259 )
260 260 coreconfigitem('devel', 'warn-config-default',
261 261 default=None,
262 262 )
263 263 coreconfigitem('devel', 'user.obsmarker',
264 264 default=None,
265 265 )
266 266 coreconfigitem('devel', 'warn-config-unknown',
267 267 default=None,
268 268 )
269 269 coreconfigitem('diff', 'nodates',
270 270 default=False,
271 271 )
272 272 coreconfigitem('diff', 'showfunc',
273 273 default=False,
274 274 )
275 275 coreconfigitem('diff', 'unified',
276 276 default=None,
277 277 )
278 278 coreconfigitem('diff', 'git',
279 279 default=False,
280 280 )
281 281 coreconfigitem('diff', 'ignorews',
282 282 default=False,
283 283 )
284 284 coreconfigitem('diff', 'ignorewsamount',
285 285 default=False,
286 286 )
287 287 coreconfigitem('diff', 'ignoreblanklines',
288 288 default=False,
289 289 )
290 290 coreconfigitem('diff', 'ignorewseol',
291 291 default=False,
292 292 )
293 293 coreconfigitem('diff', 'nobinary',
294 294 default=False,
295 295 )
296 296 coreconfigitem('diff', 'noprefix',
297 297 default=False,
298 298 )
299 299 coreconfigitem('email', 'bcc',
300 300 default=None,
301 301 )
302 302 coreconfigitem('email', 'cc',
303 303 default=None,
304 304 )
305 305 coreconfigitem('email', 'charsets',
306 306 default=list,
307 307 )
308 308 coreconfigitem('email', 'from',
309 309 default=None,
310 310 )
311 311 coreconfigitem('email', 'method',
312 312 default='smtp',
313 313 )
314 314 coreconfigitem('email', 'reply-to',
315 315 default=None,
316 316 )
317 317 coreconfigitem('experimental', 'archivemetatemplate',
318 318 default=dynamicdefault,
319 319 )
320 320 coreconfigitem('experimental', 'bundle-phases',
321 321 default=False,
322 322 )
323 323 coreconfigitem('experimental', 'bundle2-advertise',
324 324 default=True,
325 325 )
326 326 coreconfigitem('experimental', 'bundle2-output-capture',
327 327 default=False,
328 328 )
329 329 coreconfigitem('experimental', 'bundle2.pushback',
330 330 default=False,
331 331 )
332 332 coreconfigitem('experimental', 'bundle2lazylocking',
333 333 default=False,
334 334 )
335 335 coreconfigitem('experimental', 'bundlecomplevel',
336 336 default=None,
337 337 )
338 338 coreconfigitem('experimental', 'changegroup3',
339 339 default=False,
340 340 )
341 341 coreconfigitem('experimental', 'clientcompressionengines',
342 342 default=list,
343 343 )
344 344 coreconfigitem('experimental', 'copytrace',
345 345 default='on',
346 346 )
347 347 coreconfigitem('experimental', 'copytrace.movecandidateslimit',
348 348 default=100,
349 349 )
350 350 coreconfigitem('experimental', 'copytrace.sourcecommitlimit',
351 351 default=100,
352 352 )
353 353 coreconfigitem('experimental', 'crecordtest',
354 354 default=None,
355 355 )
356 356 coreconfigitem('experimental', 'editortmpinhg',
357 357 default=False,
358 358 )
359 359 coreconfigitem('experimental', 'evolution',
360 360 default=list,
361 361 )
362 362 coreconfigitem('experimental', 'evolution.allowdivergence',
363 363 default=False,
364 364 alias=[('experimental', 'allowdivergence')]
365 365 )
366 366 coreconfigitem('experimental', 'evolution.allowunstable',
367 367 default=None,
368 368 )
369 369 coreconfigitem('experimental', 'evolution.createmarkers',
370 370 default=None,
371 371 )
372 372 coreconfigitem('experimental', 'evolution.exchange',
373 373 default=None,
374 374 )
375 375 coreconfigitem('experimental', 'evolution.bundle-obsmarker',
376 376 default=False,
377 377 )
378 378 coreconfigitem('experimental', 'evolution.track-operation',
379 379 default=True,
380 380 )
381 381 coreconfigitem('experimental', 'maxdeltachainspan',
382 382 default=-1,
383 383 )
384 384 coreconfigitem('experimental', 'mmapindexthreshold',
385 385 default=None,
386 386 )
387 387 coreconfigitem('experimental', 'nonnormalparanoidcheck',
388 388 default=False,
389 389 )
390 390 coreconfigitem('experimental', 'effect-flags',
391 391 default=False,
392 392 )
393 393 coreconfigitem('experimental', 'exportableenviron',
394 394 default=list,
395 395 )
396 396 coreconfigitem('experimental', 'extendedheader.index',
397 397 default=None,
398 398 )
399 399 coreconfigitem('experimental', 'extendedheader.similarity',
400 400 default=False,
401 401 )
402 402 coreconfigitem('experimental', 'format.compression',
403 403 default='zlib',
404 404 )
405 405 coreconfigitem('experimental', 'graphshorten',
406 406 default=False,
407 407 )
408 408 coreconfigitem('experimental', 'graphstyle.parent',
409 409 default=dynamicdefault,
410 410 )
411 411 coreconfigitem('experimental', 'graphstyle.missing',
412 412 default=dynamicdefault,
413 413 )
414 414 coreconfigitem('experimental', 'graphstyle.grandparent',
415 415 default=dynamicdefault,
416 416 )
417 417 coreconfigitem('experimental', 'hook-track-tags',
418 418 default=False,
419 419 )
420 420 coreconfigitem('experimental', 'httppostargs',
421 421 default=False,
422 422 )
423 423 coreconfigitem('experimental', 'manifestv2',
424 424 default=False,
425 425 )
426 426 coreconfigitem('experimental', 'mergedriver',
427 427 default=None,
428 428 )
429 429 coreconfigitem('experimental', 'obsmarkers-exchange-debug',
430 430 default=False,
431 431 )
432 432 coreconfigitem('experimental', 'rebase.multidest',
433 433 default=False,
434 434 )
435 435 coreconfigitem('experimental', 'revertalternateinteractivemode',
436 436 default=True,
437 437 )
438 438 coreconfigitem('experimental', 'revlogv2',
439 439 default=None,
440 440 )
441 441 coreconfigitem('experimental', 'spacemovesdown',
442 442 default=False,
443 443 )
444 444 coreconfigitem('experimental', 'sparse-read',
445 445 default=False,
446 446 )
447 447 coreconfigitem('experimental', 'sparse-read.density-threshold',
448 448 default=0.25,
449 449 )
450 450 coreconfigitem('experimental', 'sparse-read.min-gap-size',
451 451 default='256K',
452 452 )
453 453 coreconfigitem('experimental', 'treemanifest',
454 454 default=False,
455 455 )
456 456 coreconfigitem('extensions', '.*',
457 457 default=None,
458 458 generic=True,
459 459 )
460 460 coreconfigitem('extdata', '.*',
461 461 default=None,
462 462 generic=True,
463 463 )
464 464 coreconfigitem('format', 'aggressivemergedeltas',
465 465 default=False,
466 466 )
467 467 coreconfigitem('format', 'chunkcachesize',
468 468 default=None,
469 469 )
470 470 coreconfigitem('format', 'dotencode',
471 471 default=True,
472 472 )
473 473 coreconfigitem('format', 'generaldelta',
474 474 default=False,
475 475 )
476 476 coreconfigitem('format', 'manifestcachesize',
477 477 default=None,
478 478 )
479 479 coreconfigitem('format', 'maxchainlen',
480 480 default=None,
481 481 )
482 482 coreconfigitem('format', 'obsstore-version',
483 483 default=None,
484 484 )
485 485 coreconfigitem('format', 'usefncache',
486 486 default=True,
487 487 )
488 488 coreconfigitem('format', 'usegeneraldelta',
489 489 default=True,
490 490 )
491 491 coreconfigitem('format', 'usestore',
492 492 default=True,
493 493 )
494 494 coreconfigitem('fsmonitor', 'warn_when_unused',
495 495 default=True,
496 496 )
497 497 coreconfigitem('fsmonitor', 'warn_update_file_count',
498 498 default=50000,
499 499 )
500 500 coreconfigitem('hooks', '.*',
501 501 default=dynamicdefault,
502 502 generic=True,
503 503 )
504 504 coreconfigitem('hgweb-paths', '.*',
505 505 default=list,
506 506 generic=True,
507 507 )
508 508 coreconfigitem('hostfingerprints', '.*',
509 509 default=list,
510 510 generic=True,
511 511 )
512 512 coreconfigitem('hostsecurity', 'ciphers',
513 513 default=None,
514 514 )
515 515 coreconfigitem('hostsecurity', 'disabletls10warning',
516 516 default=False,
517 517 )
518 518 coreconfigitem('hostsecurity', 'minimumprotocol',
519 519 default=dynamicdefault,
520 520 )
521 521 coreconfigitem('hostsecurity', '.*:minimumprotocol$',
522 522 default=dynamicdefault,
523 523 generic=True,
524 524 )
525 525 coreconfigitem('hostsecurity', '.*:ciphers$',
526 526 default=dynamicdefault,
527 527 generic=True,
528 528 )
529 529 coreconfigitem('hostsecurity', '.*:fingerprints$',
530 530 default=list,
531 531 generic=True,
532 532 )
533 533 coreconfigitem('hostsecurity', '.*:verifycertsfile$',
534 534 default=None,
535 535 generic=True,
536 536 )
537 537
538 538 coreconfigitem('http_proxy', 'always',
539 539 default=False,
540 540 )
541 541 coreconfigitem('http_proxy', 'host',
542 542 default=None,
543 543 )
544 544 coreconfigitem('http_proxy', 'no',
545 545 default=list,
546 546 )
547 547 coreconfigitem('http_proxy', 'passwd',
548 548 default=None,
549 549 )
550 550 coreconfigitem('http_proxy', 'user',
551 551 default=None,
552 552 )
553 553 coreconfigitem('logtoprocess', 'commandexception',
554 554 default=None,
555 555 )
556 556 coreconfigitem('logtoprocess', 'commandfinish',
557 557 default=None,
558 558 )
559 559 coreconfigitem('logtoprocess', 'command',
560 560 default=None,
561 561 )
562 562 coreconfigitem('logtoprocess', 'develwarn',
563 563 default=None,
564 564 )
565 565 coreconfigitem('logtoprocess', 'uiblocked',
566 566 default=None,
567 567 )
568 568 coreconfigitem('merge', 'checkunknown',
569 569 default='abort',
570 570 )
571 571 coreconfigitem('merge', 'checkignored',
572 572 default='abort',
573 573 )
574 574 coreconfigitem('merge', 'followcopies',
575 575 default=True,
576 576 )
577 577 coreconfigitem('merge', 'on-failure',
578 578 default='continue',
579 579 )
580 580 coreconfigitem('merge', 'preferancestor',
581 581 default=lambda: ['*'],
582 582 )
583 583 coreconfigitem('merge-tools', '.*',
584 584 default=None,
585 585 generic=True,
586 586 )
587 coreconfigitem('merge-tools', r'.*\.args$',
587 coreconfigitem('merge-tools', br'.*\.args$',
588 588 default="$local $base $other",
589 589 generic=True,
590 590 priority=-1,
591 591 )
592 coreconfigitem('merge-tools', r'.*\.binary$',
592 coreconfigitem('merge-tools', br'.*\.binary$',
593 593 default=False,
594 594 generic=True,
595 595 priority=-1,
596 596 )
597 coreconfigitem('merge-tools', r'.*\.check$',
597 coreconfigitem('merge-tools', br'.*\.check$',
598 598 default=list,
599 599 generic=True,
600 600 priority=-1,
601 601 )
602 coreconfigitem('merge-tools', r'.*\.checkchanged$',
602 coreconfigitem('merge-tools', br'.*\.checkchanged$',
603 603 default=False,
604 604 generic=True,
605 605 priority=-1,
606 606 )
607 coreconfigitem('merge-tools', r'.*\.executable$',
607 coreconfigitem('merge-tools', br'.*\.executable$',
608 608 default=dynamicdefault,
609 609 generic=True,
610 610 priority=-1,
611 611 )
612 coreconfigitem('merge-tools', r'.*\.fixeol$',
612 coreconfigitem('merge-tools', br'.*\.fixeol$',
613 613 default=False,
614 614 generic=True,
615 615 priority=-1,
616 616 )
617 coreconfigitem('merge-tools', r'.*\.gui$',
617 coreconfigitem('merge-tools', br'.*\.gui$',
618 618 default=False,
619 619 generic=True,
620 620 priority=-1,
621 621 )
622 coreconfigitem('merge-tools', r'.*\.priority$',
622 coreconfigitem('merge-tools', br'.*\.priority$',
623 623 default=0,
624 624 generic=True,
625 625 priority=-1,
626 626 )
627 coreconfigitem('merge-tools', r'.*\.premerge$',
627 coreconfigitem('merge-tools', br'.*\.premerge$',
628 628 default=dynamicdefault,
629 629 generic=True,
630 630 priority=-1,
631 631 )
632 coreconfigitem('merge-tools', r'.*\.symlink$',
632 coreconfigitem('merge-tools', br'.*\.symlink$',
633 633 default=False,
634 634 generic=True,
635 635 priority=-1,
636 636 )
637 637 coreconfigitem('pager', 'attend-.*',
638 638 default=dynamicdefault,
639 639 generic=True,
640 640 )
641 641 coreconfigitem('pager', 'ignore',
642 642 default=list,
643 643 )
644 644 coreconfigitem('pager', 'pager',
645 645 default=dynamicdefault,
646 646 )
647 647 coreconfigitem('patch', 'eol',
648 648 default='strict',
649 649 )
650 650 coreconfigitem('patch', 'fuzz',
651 651 default=2,
652 652 )
653 653 coreconfigitem('paths', 'default',
654 654 default=None,
655 655 )
656 656 coreconfigitem('paths', 'default-push',
657 657 default=None,
658 658 )
659 659 coreconfigitem('paths', '.*',
660 660 default=None,
661 661 generic=True,
662 662 )
663 663 coreconfigitem('phases', 'checksubrepos',
664 664 default='follow',
665 665 )
666 666 coreconfigitem('phases', 'new-commit',
667 667 default='draft',
668 668 )
669 669 coreconfigitem('phases', 'publish',
670 670 default=True,
671 671 )
672 672 coreconfigitem('profiling', 'enabled',
673 673 default=False,
674 674 )
675 675 coreconfigitem('profiling', 'format',
676 676 default='text',
677 677 )
678 678 coreconfigitem('profiling', 'freq',
679 679 default=1000,
680 680 )
681 681 coreconfigitem('profiling', 'limit',
682 682 default=30,
683 683 )
684 684 coreconfigitem('profiling', 'nested',
685 685 default=0,
686 686 )
687 687 coreconfigitem('profiling', 'output',
688 688 default=None,
689 689 )
690 690 coreconfigitem('profiling', 'showmax',
691 691 default=0.999,
692 692 )
693 693 coreconfigitem('profiling', 'showmin',
694 694 default=dynamicdefault,
695 695 )
696 696 coreconfigitem('profiling', 'sort',
697 697 default='inlinetime',
698 698 )
699 699 coreconfigitem('profiling', 'statformat',
700 700 default='hotpath',
701 701 )
702 702 coreconfigitem('profiling', 'type',
703 703 default='stat',
704 704 )
705 705 coreconfigitem('progress', 'assume-tty',
706 706 default=False,
707 707 )
708 708 coreconfigitem('progress', 'changedelay',
709 709 default=1,
710 710 )
711 711 coreconfigitem('progress', 'clear-complete',
712 712 default=True,
713 713 )
714 714 coreconfigitem('progress', 'debug',
715 715 default=False,
716 716 )
717 717 coreconfigitem('progress', 'delay',
718 718 default=3,
719 719 )
720 720 coreconfigitem('progress', 'disable',
721 721 default=False,
722 722 )
723 723 coreconfigitem('progress', 'estimateinterval',
724 724 default=60.0,
725 725 )
726 726 coreconfigitem('progress', 'format',
727 727 default=lambda: ['topic', 'bar', 'number', 'estimate'],
728 728 )
729 729 coreconfigitem('progress', 'refresh',
730 730 default=0.1,
731 731 )
732 732 coreconfigitem('progress', 'width',
733 733 default=dynamicdefault,
734 734 )
735 735 coreconfigitem('push', 'pushvars.server',
736 736 default=False,
737 737 )
738 738 coreconfigitem('server', 'bundle1',
739 739 default=True,
740 740 )
741 741 coreconfigitem('server', 'bundle1gd',
742 742 default=None,
743 743 )
744 744 coreconfigitem('server', 'bundle1.pull',
745 745 default=None,
746 746 )
747 747 coreconfigitem('server', 'bundle1gd.pull',
748 748 default=None,
749 749 )
750 750 coreconfigitem('server', 'bundle1.push',
751 751 default=None,
752 752 )
753 753 coreconfigitem('server', 'bundle1gd.push',
754 754 default=None,
755 755 )
756 756 coreconfigitem('server', 'compressionengines',
757 757 default=list,
758 758 )
759 759 coreconfigitem('server', 'concurrent-push-mode',
760 760 default='strict',
761 761 )
762 762 coreconfigitem('server', 'disablefullbundle',
763 763 default=False,
764 764 )
765 765 coreconfigitem('server', 'maxhttpheaderlen',
766 766 default=1024,
767 767 )
768 768 coreconfigitem('server', 'preferuncompressed',
769 769 default=False,
770 770 )
771 771 coreconfigitem('server', 'uncompressed',
772 772 default=True,
773 773 )
774 774 coreconfigitem('server', 'uncompressedallowsecret',
775 775 default=False,
776 776 )
777 777 coreconfigitem('server', 'validate',
778 778 default=False,
779 779 )
780 780 coreconfigitem('server', 'zliblevel',
781 781 default=-1,
782 782 )
783 783 coreconfigitem('smtp', 'host',
784 784 default=None,
785 785 )
786 786 coreconfigitem('smtp', 'local_hostname',
787 787 default=None,
788 788 )
789 789 coreconfigitem('smtp', 'password',
790 790 default=None,
791 791 )
792 792 coreconfigitem('smtp', 'port',
793 793 default=dynamicdefault,
794 794 )
795 795 coreconfigitem('smtp', 'tls',
796 796 default='none',
797 797 )
798 798 coreconfigitem('smtp', 'username',
799 799 default=None,
800 800 )
801 801 coreconfigitem('sparse', 'missingwarning',
802 802 default=True,
803 803 )
804 804 coreconfigitem('templates', '.*',
805 805 default=None,
806 806 generic=True,
807 807 )
808 808 coreconfigitem('trusted', 'groups',
809 809 default=list,
810 810 )
811 811 coreconfigitem('trusted', 'users',
812 812 default=list,
813 813 )
814 814 coreconfigitem('ui', '_usedassubrepo',
815 815 default=False,
816 816 )
817 817 coreconfigitem('ui', 'allowemptycommit',
818 818 default=False,
819 819 )
820 820 coreconfigitem('ui', 'archivemeta',
821 821 default=True,
822 822 )
823 823 coreconfigitem('ui', 'askusername',
824 824 default=False,
825 825 )
826 826 coreconfigitem('ui', 'clonebundlefallback',
827 827 default=False,
828 828 )
829 829 coreconfigitem('ui', 'clonebundleprefers',
830 830 default=list,
831 831 )
832 832 coreconfigitem('ui', 'clonebundles',
833 833 default=True,
834 834 )
835 835 coreconfigitem('ui', 'color',
836 836 default='auto',
837 837 )
838 838 coreconfigitem('ui', 'commitsubrepos',
839 839 default=False,
840 840 )
841 841 coreconfigitem('ui', 'debug',
842 842 default=False,
843 843 )
844 844 coreconfigitem('ui', 'debugger',
845 845 default=None,
846 846 )
847 847 coreconfigitem('ui', 'fallbackencoding',
848 848 default=None,
849 849 )
850 850 coreconfigitem('ui', 'forcecwd',
851 851 default=None,
852 852 )
853 853 coreconfigitem('ui', 'forcemerge',
854 854 default=None,
855 855 )
856 856 coreconfigitem('ui', 'formatdebug',
857 857 default=False,
858 858 )
859 859 coreconfigitem('ui', 'formatjson',
860 860 default=False,
861 861 )
862 862 coreconfigitem('ui', 'formatted',
863 863 default=None,
864 864 )
865 865 coreconfigitem('ui', 'graphnodetemplate',
866 866 default=None,
867 867 )
868 868 coreconfigitem('ui', 'http2debuglevel',
869 869 default=None,
870 870 )
871 871 coreconfigitem('ui', 'interactive',
872 872 default=None,
873 873 )
874 874 coreconfigitem('ui', 'interface',
875 875 default=None,
876 876 )
877 877 coreconfigitem('ui', 'interface.chunkselector',
878 878 default=None,
879 879 )
880 880 coreconfigitem('ui', 'logblockedtimes',
881 881 default=False,
882 882 )
883 883 coreconfigitem('ui', 'logtemplate',
884 884 default=None,
885 885 )
886 886 coreconfigitem('ui', 'merge',
887 887 default=None,
888 888 )
889 889 coreconfigitem('ui', 'mergemarkers',
890 890 default='basic',
891 891 )
892 892 coreconfigitem('ui', 'mergemarkertemplate',
893 893 default=('{node|short} '
894 894 '{ifeq(tags, "tip", "", '
895 895 'ifeq(tags, "", "", "{tags} "))}'
896 896 '{if(bookmarks, "{bookmarks} ")}'
897 897 '{ifeq(branch, "default", "", "{branch} ")}'
898 898 '- {author|user}: {desc|firstline}')
899 899 )
900 900 coreconfigitem('ui', 'nontty',
901 901 default=False,
902 902 )
903 903 coreconfigitem('ui', 'origbackuppath',
904 904 default=None,
905 905 )
906 906 coreconfigitem('ui', 'paginate',
907 907 default=True,
908 908 )
909 909 coreconfigitem('ui', 'patch',
910 910 default=None,
911 911 )
912 912 coreconfigitem('ui', 'portablefilenames',
913 913 default='warn',
914 914 )
915 915 coreconfigitem('ui', 'promptecho',
916 916 default=False,
917 917 )
918 918 coreconfigitem('ui', 'quiet',
919 919 default=False,
920 920 )
921 921 coreconfigitem('ui', 'quietbookmarkmove',
922 922 default=False,
923 923 )
924 924 coreconfigitem('ui', 'remotecmd',
925 925 default='hg',
926 926 )
927 927 coreconfigitem('ui', 'report_untrusted',
928 928 default=True,
929 929 )
930 930 coreconfigitem('ui', 'rollback',
931 931 default=True,
932 932 )
933 933 coreconfigitem('ui', 'slash',
934 934 default=False,
935 935 )
936 936 coreconfigitem('ui', 'ssh',
937 937 default='ssh',
938 938 )
939 939 coreconfigitem('ui', 'statuscopies',
940 940 default=False,
941 941 )
942 942 coreconfigitem('ui', 'strict',
943 943 default=False,
944 944 )
945 945 coreconfigitem('ui', 'style',
946 946 default='',
947 947 )
948 948 coreconfigitem('ui', 'supportcontact',
949 949 default=None,
950 950 )
951 951 coreconfigitem('ui', 'textwidth',
952 952 default=78,
953 953 )
954 954 coreconfigitem('ui', 'timeout',
955 955 default='600',
956 956 )
957 957 coreconfigitem('ui', 'traceback',
958 958 default=False,
959 959 )
960 960 coreconfigitem('ui', 'tweakdefaults',
961 961 default=False,
962 962 )
963 963 coreconfigitem('ui', 'usehttp2',
964 964 default=False,
965 965 )
966 966 coreconfigitem('ui', 'username',
967 967 alias=[('ui', 'user')]
968 968 )
969 969 coreconfigitem('ui', 'verbose',
970 970 default=False,
971 971 )
972 972 coreconfigitem('verify', 'skipflags',
973 973 default=None,
974 974 )
975 975 coreconfigitem('web', 'allowbz2',
976 976 default=False,
977 977 )
978 978 coreconfigitem('web', 'allowgz',
979 979 default=False,
980 980 )
981 981 coreconfigitem('web', 'allowpull',
982 982 default=True,
983 983 )
984 984 coreconfigitem('web', 'allow_push',
985 985 default=list,
986 986 )
987 987 coreconfigitem('web', 'allowzip',
988 988 default=False,
989 989 )
990 990 coreconfigitem('web', 'archivesubrepos',
991 991 default=False,
992 992 )
993 993 coreconfigitem('web', 'cache',
994 994 default=True,
995 995 )
996 996 coreconfigitem('web', 'contact',
997 997 default=None,
998 998 )
999 999 coreconfigitem('web', 'deny_push',
1000 1000 default=list,
1001 1001 )
1002 1002 coreconfigitem('web', 'guessmime',
1003 1003 default=False,
1004 1004 )
1005 1005 coreconfigitem('web', 'hidden',
1006 1006 default=False,
1007 1007 )
1008 1008 coreconfigitem('web', 'labels',
1009 1009 default=list,
1010 1010 )
1011 1011 coreconfigitem('web', 'logoimg',
1012 1012 default='hglogo.png',
1013 1013 )
1014 1014 coreconfigitem('web', 'logourl',
1015 1015 default='https://mercurial-scm.org/',
1016 1016 )
1017 1017 coreconfigitem('web', 'accesslog',
1018 1018 default='-',
1019 1019 )
1020 1020 coreconfigitem('web', 'address',
1021 1021 default='',
1022 1022 )
1023 1023 coreconfigitem('web', 'allow_archive',
1024 1024 default=list,
1025 1025 )
1026 1026 coreconfigitem('web', 'allow_read',
1027 1027 default=list,
1028 1028 )
1029 1029 coreconfigitem('web', 'baseurl',
1030 1030 default=None,
1031 1031 )
1032 1032 coreconfigitem('web', 'cacerts',
1033 1033 default=None,
1034 1034 )
1035 1035 coreconfigitem('web', 'certificate',
1036 1036 default=None,
1037 1037 )
1038 1038 coreconfigitem('web', 'collapse',
1039 1039 default=False,
1040 1040 )
1041 1041 coreconfigitem('web', 'csp',
1042 1042 default=None,
1043 1043 )
1044 1044 coreconfigitem('web', 'deny_read',
1045 1045 default=list,
1046 1046 )
1047 1047 coreconfigitem('web', 'descend',
1048 1048 default=True,
1049 1049 )
1050 1050 coreconfigitem('web', 'description',
1051 1051 default="",
1052 1052 )
1053 1053 coreconfigitem('web', 'encoding',
1054 1054 default=lambda: encoding.encoding,
1055 1055 )
1056 1056 coreconfigitem('web', 'errorlog',
1057 1057 default='-',
1058 1058 )
1059 1059 coreconfigitem('web', 'ipv6',
1060 1060 default=False,
1061 1061 )
1062 1062 coreconfigitem('web', 'maxchanges',
1063 1063 default=10,
1064 1064 )
1065 1065 coreconfigitem('web', 'maxfiles',
1066 1066 default=10,
1067 1067 )
1068 1068 coreconfigitem('web', 'maxshortchanges',
1069 1069 default=60,
1070 1070 )
1071 1071 coreconfigitem('web', 'motd',
1072 1072 default='',
1073 1073 )
1074 1074 coreconfigitem('web', 'name',
1075 1075 default=dynamicdefault,
1076 1076 )
1077 1077 coreconfigitem('web', 'port',
1078 1078 default=8000,
1079 1079 )
1080 1080 coreconfigitem('web', 'prefix',
1081 1081 default='',
1082 1082 )
1083 1083 coreconfigitem('web', 'push_ssl',
1084 1084 default=True,
1085 1085 )
1086 1086 coreconfigitem('web', 'refreshinterval',
1087 1087 default=20,
1088 1088 )
1089 1089 coreconfigitem('web', 'staticurl',
1090 1090 default=None,
1091 1091 )
1092 1092 coreconfigitem('web', 'stripes',
1093 1093 default=1,
1094 1094 )
1095 1095 coreconfigitem('web', 'style',
1096 1096 default='paper',
1097 1097 )
1098 1098 coreconfigitem('web', 'templates',
1099 1099 default=None,
1100 1100 )
1101 1101 coreconfigitem('web', 'view',
1102 1102 default='served',
1103 1103 )
1104 1104 coreconfigitem('worker', 'backgroundclose',
1105 1105 default=dynamicdefault,
1106 1106 )
1107 1107 # Windows defaults to a limit of 512 open files. A buffer of 128
1108 1108 # should give us enough headway.
1109 1109 coreconfigitem('worker', 'backgroundclosemaxqueue',
1110 1110 default=384,
1111 1111 )
1112 1112 coreconfigitem('worker', 'backgroundcloseminfilecount',
1113 1113 default=2048,
1114 1114 )
1115 1115 coreconfigitem('worker', 'backgroundclosethreadcount',
1116 1116 default=4,
1117 1117 )
1118 1118 coreconfigitem('worker', 'numcpus',
1119 1119 default=None,
1120 1120 )
1121 1121
1122 1122 # Rebase related configuration moved to core because other extension are doing
1123 1123 # strange things. For example, shelve import the extensions to reuse some bit
1124 1124 # without formally loading it.
1125 1125 coreconfigitem('commands', 'rebase.requiredest',
1126 1126 default=False,
1127 1127 )
1128 1128 coreconfigitem('experimental', 'rebaseskipobsolete',
1129 1129 default=True,
1130 1130 )
1131 1131 coreconfigitem('rebase', 'singletransaction',
1132 1132 default=False,
1133 1133 )
General Comments 0
You need to be logged in to leave comments. Login now