comparison mercurial/configitems.toml @ 50762:c51b178b0b7e

configitems: declare items in a TOML file Mercurial ships with Rust code that also needs to read from the config. Having a way of presenting `configitems` to both Python and Rust is needed to prevent duplication, drift, and have the appropriate devel warnings. Abstracting away from Python means choosing a config format. No single format is perfect, and I have yet to come across a developer that doesn't hate all of them in some way. Since we have a strict no-dependencies policy for Mercurial, we either need to use whatever comes with Python, vendor a library, or implement a custom format ourselves. Python stdlib means using JSON, which doesn't support comments and isn't great for humans, or `configparser` which is an obscure, untyped format that nobody uses and doesn't have a commonplace Rust parser. Implementing a custom format is error-prone, tedious and subject to the same issues as picking an existing format. Vendoring opens us to the vast array of common config formats. The ones being picked for most modern software are YAML and TOML. YAML is older and common in the Python community, but TOML is much simpler and less error-prone. I would much rather be responsible for the <1000 lines of `tomli`, on top of TOML being the choice of the Rust community, with robust crates for reading it. The structure of `configitems.toml` is explained inline.
author Raphaël Gomès <rgomes@octobus.net>
date Mon, 23 Jan 2023 18:08:11 +0100
parents mercurial/configitems.py@b584dae08774
children 7f8f6fe13fa9
comparison
equal deleted inserted replaced
50761:2c34c9b61a4f 50762:c51b178b0b7e
1 # configitems.toml - centralized declaration of configuration options
2 #
3 # This file contains declarations of the core Mercurial configuration options.
4 #
5 # # Structure
6 #
7 # items: array of config items
8 # templates: mapping of template name to template declaration
9 # template-applications: array of template applications
10 #
11 # # Elements
12 #
13 # ## Item
14 #
15 # Declares a core Mercurial option.
16 #
17 # - section: string (required)
18 # - name: string (required)
19 # - default-type: boolean, changes how `default` is read
20 # - default: any
21 # - generic: boolean
22 # - priority: integer, only if `generic` is true
23 # - alias: list of 2-tuples of strings
24 # - experimental: boolean
25 # - documentation: string
26 #
27 # ## Template
28 #
29 # Declares a group of options to be re-used for multiple sections.
30 #
31 # - all the same fields as `Item`, except `section` and `name`
32 # - `suffix` (string, required)
33 #
34 # ## Template applications
35 #
36 # Uses a `Template` to instanciate its options in a given section.
37 #
38 # - template: string (required, must match a `Template` name)
39 # - section: string (required)
40
41 [[items]]
42 section = "alias"
43 name = ".*"
44 default-type = "dynamic"
45 generic = true
46
47 [[items]]
48 section = "auth"
49 name = "cookiefile"
50
51 # bookmarks.pushing: internal hack for discovery
52 [[items]]
53 section = "bookmarks"
54 name = "pushing"
55 default-type = "list_type"
56
57 # bundle.mainreporoot: internal hack for bundlerepo
58 [[items]]
59 section = "bundle"
60 name = "mainreporoot"
61 default = ""
62
63 [[items]]
64 section = "censor"
65 name = "policy"
66 default = "abort"
67 experimental = true
68
69 [[items]]
70 section = "chgserver"
71 name = "idletimeout"
72 default = 3600
73
74 [[items]]
75 section = "chgserver"
76 name = "skiphash"
77 default = false
78
79 [[items]]
80 section = "cmdserver"
81 name = "log"
82
83 [[items]]
84 section = "cmdserver"
85 name = "max-log-files"
86 default = 7
87
88 [[items]]
89 section = "cmdserver"
90 name = "max-log-size"
91 default = "1 MB"
92
93 [[items]]
94 section = "cmdserver"
95 name = "max-repo-cache"
96 default = 0
97 experimental = true
98
99 [[items]]
100 section = "cmdserver"
101 name = "message-encodings"
102 default-type = "list_type"
103
104 [[items]]
105 section = "cmdserver"
106 name = "shutdown-on-interrupt"
107 default = true
108
109 [[items]]
110 section = "cmdserver"
111 name = "track-log"
112 default-type = "lambda"
113 default = [ "chgserver", "cmdserver", "repocache",]
114
115 [[items]]
116 section = "color"
117 name = ".*"
118 generic = true
119
120 [[items]]
121 section = "color"
122 name = "mode"
123 default = "auto"
124
125 [[items]]
126 section = "color"
127 name = "pagermode"
128 default-type = "dynamic"
129
130 [[items]]
131 section = "command-templates"
132 name = "graphnode"
133 alias = [["ui", "graphnodetemplate"]]
134
135 [[items]]
136 section = "command-templates"
137 name = "log"
138 alias = [["ui", "logtemplate"]]
139
140 [[items]]
141 section = "command-templates"
142 name = "mergemarker"
143 default = '{node|short} {ifeq(tags, "tip", "", ifeq(tags, "", "", "{tags} "))}{if(bookmarks, "{bookmarks} ")}{ifeq(branch, "default", "", "{branch} ")}- {author|user}: {desc|firstline}'
144 alias = [["ui", "mergemarkertemplate"]]
145
146 [[items]]
147 section = "command-templates"
148 name = "oneline-summary"
149
150 [[items]]
151 section = "command-templates"
152 name = "oneline-summary.*"
153 default-type = "dynamic"
154 generic = true
155
156 [[items]]
157 section = "command-templates"
158 name = "pre-merge-tool-output"
159 alias = [["ui", "pre-merge-tool-output-template"]]
160
161 [[items]]
162 section = "commands"
163 name = "commit.post-status"
164 default = false
165
166 [[items]]
167 section = "commands"
168 name = "grep.all-files"
169 default = false
170 experimental = true
171
172 [[items]]
173 section = "commands"
174 name = "merge.require-rev"
175 default = false
176
177 [[items]]
178 section = "commands"
179 name = "push.require-revs"
180 default = false
181
182 # Rebase related configuration moved to core because other extension are doing
183 # strange things. For example, shelve import the extensions to reuse some bit
184 # without formally loading it.
185 [[items]]
186 section = "commands"
187 name = "rebase.requiredest"
188 default = false
189
190 [[items]]
191 section = "commands"
192 name = "resolve.confirm"
193 default = false
194
195 [[items]]
196 section = "commands"
197 name = "resolve.explicit-re-merge"
198 default = false
199
200 [[items]]
201 section = "commands"
202 name = "resolve.mark-check"
203 default = "none"
204
205 [[items]]
206 section = "commands"
207 name = "show.aliasprefix"
208 default-type = "list_type"
209
210 [[items]]
211 section = "commands"
212 name = "status.relative"
213 default = false
214
215 [[items]]
216 section = "commands"
217 name = "status.skipstates"
218 default = []
219 experimental = true
220
221 [[items]]
222 section = "commands"
223 name = "status.terse"
224 default = ""
225
226 [[items]]
227 section = "commands"
228 name = "status.verbose"
229 default = false
230
231 [[items]]
232 section = "commands"
233 name = "update.check"
234
235 [[items]]
236 section = "commands"
237 name = "update.requiredest"
238 default = false
239
240 [[items]]
241 section = "committemplate"
242 name = ".*"
243 generic = true
244
245 [[items]]
246 section = "convert"
247 name = "bzr.saverev"
248 default = true
249
250 [[items]]
251 section = "convert"
252 name = "cvsps.cache"
253 default = true
254
255 [[items]]
256 section = "convert"
257 name = "cvsps.fuzz"
258 default = 60
259
260 [[items]]
261 section = "convert"
262 name = "cvsps.logencoding"
263
264 [[items]]
265 section = "convert"
266 name = "cvsps.mergefrom"
267
268 [[items]]
269 section = "convert"
270 name = "cvsps.mergeto"
271
272 [[items]]
273 section = "convert"
274 name = "git.committeractions"
275 default-type = "lambda"
276 default = [ "messagedifferent",]
277
278 [[items]]
279 section = "convert"
280 name = "git.extrakeys"
281 default-type = "list_type"
282
283 [[items]]
284 section = "convert"
285 name = "git.findcopiesharder"
286 default = false
287
288 [[items]]
289 section = "convert"
290 name = "git.remoteprefix"
291 default = "remote"
292
293 [[items]]
294 section = "convert"
295 name = "git.renamelimit"
296 default = 400
297
298 [[items]]
299 section = "convert"
300 name = "git.saverev"
301 default = true
302
303 [[items]]
304 section = "convert"
305 name = "git.similarity"
306 default = 50
307
308 [[items]]
309 section = "convert"
310 name = "git.skipsubmodules"
311 default = false
312
313 [[items]]
314 section = "convert"
315 name = "hg.clonebranches"
316 default = false
317
318 [[items]]
319 section = "convert"
320 name = "hg.ignoreerrors"
321 default = false
322
323 [[items]]
324 section = "convert"
325 name = "hg.preserve-hash"
326 default = false
327
328 [[items]]
329 section = "convert"
330 name = "hg.revs"
331
332 [[items]]
333 section = "convert"
334 name = "hg.saverev"
335 default = false
336
337 [[items]]
338 section = "convert"
339 name = "hg.sourcename"
340
341 [[items]]
342 section = "convert"
343 name = "hg.startrev"
344
345 [[items]]
346 section = "convert"
347 name = "hg.tagsbranch"
348 default = "default"
349
350 [[items]]
351 section = "convert"
352 name = "hg.usebranchnames"
353 default = true
354
355 [[items]]
356 section = "convert"
357 name = "ignoreancestorcheck"
358 default = false
359 experimental = true
360
361 [[items]]
362 section = "convert"
363 name = "localtimezone"
364 default = false
365
366 [[items]]
367 section = "convert"
368 name = "p4.encoding"
369 default-type = "dynamic"
370
371 [[items]]
372 section = "convert"
373 name = "p4.startrev"
374 default = 0
375
376 [[items]]
377 section = "convert"
378 name = "skiptags"
379 default = false
380
381 [[items]]
382 section = "convert"
383 name = "svn.branches"
384
385 [[items]]
386 section = "convert"
387 name = "svn.dangerous-set-commit-dates"
388 default = false
389
390 [[items]]
391 section = "convert"
392 name = "svn.debugsvnlog"
393 default = true
394
395 [[items]]
396 section = "convert"
397 name = "svn.startrev"
398 default = 0
399
400 [[items]]
401 section = "convert"
402 name = "svn.tags"
403
404 [[items]]
405 section = "convert"
406 name = "svn.trunk"
407
408 [[items]]
409 section = "debug"
410 name = "bundling-stats"
411 default = false
412 documentation = "Display extra information about the bundling process."
413
414 [[items]]
415 section = "debug"
416 name = "dirstate.delaywrite"
417 default = 0
418
419 [[items]]
420 section = "debug"
421 name = "revlog.debug-delta"
422 default = false
423
424 [[items]]
425 section = "debug"
426 name = "revlog.verifyposition.changelog"
427 default = ""
428
429 [[items]]
430 section = "debug"
431 name = "unbundling-stats"
432 default = false
433 documentation = "Display extra information about the unbundling process."
434
435 [[items]]
436 section = "defaults"
437 name = ".*"
438 generic = true
439
440 [[items]]
441 section = "devel"
442 name = "all-warnings"
443 default = false
444
445 [[items]]
446 section = "devel"
447 name = "bundle.delta"
448 default = ""
449
450 [[items]]
451 section = "devel"
452 name = "bundle2.debug"
453 default = false
454
455 [[items]]
456 section = "devel"
457 name = "cache-vfs"
458
459 [[items]]
460 section = "devel"
461 name = "check-locks"
462 default = false
463
464 [[items]]
465 section = "devel"
466 name = "check-relroot"
467 default = false
468
469 [[items]]
470 section = "devel"
471 name = "copy-tracing.multi-thread"
472 default = true
473
474 # Track copy information for all files, not just "added" ones (very slow)
475 [[items]]
476 section = "devel"
477 name = "copy-tracing.trace-all-files"
478 default = false
479
480 [[items]]
481 section = "devel"
482 name = "debug.abort-update"
483 default = false
484 documentation = """If true, then any merge with the working copy, \
485 e.g. [hg update], will be aborted after figuring out what needs to be done, \
486 but before spawning the parallel worker."""
487
488 [[items]]
489 section = "devel"
490 name = "debug.copies"
491 default = false
492
493 [[items]]
494 section = "devel"
495 name = "debug.extensions"
496 default = false
497
498 [[items]]
499 section = "devel"
500 name = "debug.peer-request"
501 default = false
502
503 [[items]]
504 section = "devel"
505 name = "debug.repo-filters"
506 default = false
507
508 [[items]]
509 section = "devel"
510 name = "default-date"
511
512 [[items]]
513 section = "devel"
514 name = "deprec-warn"
515 default = false
516
517 # possible values:
518 # - auto (the default)
519 # - force-append
520 # - force-new
521 [[items]]
522 section = "devel"
523 name = "dirstate.v2.data_update_mode"
524 default = "auto"
525
526 [[items]]
527 section = "devel"
528 name = "disableloaddefaultcerts"
529 default = false
530
531 [[items]]
532 section = "devel"
533 name = "discovery.exchange-heads"
534 default = true
535 documentation = """If false, the discovery will not start with remote \
536 head fetching and local head querying."""
537
538 [[items]]
539 section = "devel"
540 name = "discovery.grow-sample"
541 default = true
542 documentation = """If false, the sample size used in set discovery \
543 will not be increased through the process."""
544
545 [[items]]
546 section = "devel"
547 name = "discovery.grow-sample.dynamic"
548 default = true
549 documentation = """If true, the default, the sample size is adapted to the shape \
550 of the undecided set. It is set to the max of:
551 `<target-size>, len(roots(undecided)), len(heads(undecided))`"""
552
553 [[items]]
554 section = "devel"
555 name = "discovery.grow-sample.rate"
556 default = 1.05
557 documentation = "Controls the rate at which the sample grows."
558
559 [[items]]
560 section = "devel"
561 name = "discovery.randomize"
562 default = true
563 documentation = """If false, random samplings during discovery are deterministic. \
564 It is meant for integration tests."""
565
566 [[items]]
567 section = "devel"
568 name = "discovery.sample-size"
569 default = 200
570 documentation = "Controls the initial size of the discovery sample."
571
572 [[items]]
573 section = "devel"
574 name = "discovery.sample-size.initial"
575 default = 100
576 documentation = "Controls the initial size of the discovery for initial change."
577
578 [[items]]
579 section = "devel"
580 name = "legacy.exchange"
581 default-type = "list_type"
582
583 [[items]]
584 section = "devel"
585 name = "persistent-nodemap"
586 default = false
587 documentation = """When true, revlogs use a special reference version of the \
588 nodemap, that is not performant but is "known" to behave properly."""
589
590 [[items]]
591 section = "devel"
592 name = "server-insecure-exact-protocol"
593 default = ""
594
595 [[items]]
596 section = "devel"
597 name = "servercafile"
598 default = ""
599
600 [[items]]
601 section = "devel"
602 name = "serverexactprotocol"
603 default = ""
604
605 [[items]]
606 section = "devel"
607 name = "serverrequirecert"
608 default = false
609
610 [[items]]
611 section = "devel"
612 name = "strip-obsmarkers"
613 default = true
614
615 [[items]]
616 section = 'devel'
617 name = 'sync.status.pre-dirstate-write-file'
618 documentation = """
619 Makes the status algorithm wait for the existence of this file \
620 (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` \
621 seconds) before taking the lock and writing the dirstate. \
622 Status signals that it's ready to wait by creating a file \
623 with the same name + `.waiting`. \
624 Useful when testing race conditions."""
625
626 [[items]]
627 section = 'devel'
628 name = 'sync.status.pre-dirstate-write-file-timeout'
629 default=2
630
631 [[items]]
632 section = 'devel'
633 name = 'sync.dirstate.post-docket-read-file'
634
635 [[items]]
636 section = 'devel'
637 name = 'sync.dirstate.post-docket-read-file-timeout'
638 default=2
639
640 [[items]]
641 section = 'devel'
642 name = 'sync.dirstate.pre-read-file'
643
644 [[items]]
645 section = 'devel'
646 name = 'sync.dirstate.pre-read-file-timeout'
647 default=2
648
649 [[items]]
650 section = "devel"
651 name = "user.obsmarker"
652
653 [[items]]
654 section = "devel"
655 name = "warn-config"
656
657 [[items]]
658 section = "devel"
659 name = "warn-config-default"
660
661 [[items]]
662 section = "devel"
663 name = "warn-config-unknown"
664
665 [[items]]
666 section = "devel"
667 name = "warn-empty-changegroup"
668 default = false
669
670 [[items]]
671 section = "diff"
672 name = "merge"
673 default = false
674 experimental = true
675
676 [[items]]
677 section = "email"
678 name = "bcc"
679
680 [[items]]
681 section = "email"
682 name = "cc"
683
684 [[items]]
685 section = "email"
686 name = "charsets"
687 default-type = "list_type"
688
689 [[items]]
690 section = "email"
691 name = "from"
692
693 [[items]]
694 section = "email"
695 name = "method"
696 default = "smtp"
697
698 [[items]]
699 section = "email"
700 name = "reply-to"
701
702 [[items]]
703 section = "email"
704 name = "to"
705
706 [[items]]
707 section = "experimental"
708 name = "archivemetatemplate"
709 default-type = "dynamic"
710
711 [[items]]
712 section = "experimental"
713 name = "auto-publish"
714 default = "publish"
715
716 [[items]]
717 section = "experimental"
718 name = "bundle-phases"
719 default = false
720
721 [[items]]
722 section = "experimental"
723 name = "bundle2-advertise"
724 default = true
725
726 [[items]]
727 section = "experimental"
728 name = "bundle2-output-capture"
729 default = false
730
731 [[items]]
732 section = "experimental"
733 name = "bundle2.pushback"
734 default = false
735
736 [[items]]
737 section = "experimental"
738 name = "bundle2lazylocking"
739 default = false
740
741 [[items]]
742 section = "experimental"
743 name = "bundlecomplevel"
744
745 [[items]]
746 section = "experimental"
747 name = "bundlecomplevel.bzip2"
748
749 [[items]]
750 section = "experimental"
751 name = "bundlecomplevel.gzip"
752
753 [[items]]
754 section = "experimental"
755 name = "bundlecomplevel.none"
756
757 [[items]]
758 section = "experimental"
759 name = "bundlecomplevel.zstd"
760
761 [[items]]
762 section = "experimental"
763 name = "bundlecompthreads"
764
765 [[items]]
766 section = "experimental"
767 name = "bundlecompthreads.bzip2"
768
769 [[items]]
770 section = "experimental"
771 name = "bundlecompthreads.gzip"
772
773 [[items]]
774 section = "experimental"
775 name = "bundlecompthreads.none"
776
777 [[items]]
778 section = "experimental"
779 name = "bundlecompthreads.zstd"
780
781 [[items]]
782 section = "experimental"
783 name = "changegroup3"
784 default = true
785
786 [[items]]
787 section = "experimental"
788 name = "changegroup4"
789 default = false
790
791 # might remove rank configuration once the computation has no impact
792 [[items]]
793 section = "experimental"
794 name = "changelog-v2.compute-rank"
795 default = true
796
797 [[items]]
798 section = "experimental"
799 name = "cleanup-as-archived"
800 default = false
801
802 [[items]]
803 section = "experimental"
804 name = "clientcompressionengines"
805 default-type = "list_type"
806
807 [[items]]
808 section = "experimental"
809 name = "copies.read-from"
810 default = "filelog-only"
811
812 [[items]]
813 section = "experimental"
814 name = "copies.write-to"
815 default = "filelog-only"
816
817 [[items]]
818 section = "experimental"
819 name = "copytrace"
820 default = "on"
821
822 [[items]]
823 section = "experimental"
824 name = "copytrace.movecandidateslimit"
825 default = 100
826
827 [[items]]
828 section = "experimental"
829 name = "copytrace.sourcecommitlimit"
830 default = 100
831
832 [[items]]
833 section = "experimental"
834 name = "crecordtest"
835
836 [[items]]
837 section = "experimental"
838 name = "directaccess"
839 default = false
840
841 [[items]]
842 section = "experimental"
843 name = "directaccess.revnums"
844 default = false
845
846 [[items]]
847 section = "experimental"
848 name = "editortmpinhg"
849 default = false
850
851 [[items]]
852 section = "experimental"
853 name = "evolution"
854 default-type = "list_type"
855
856 [[items]]
857 section = "experimental"
858 name = "evolution.allowdivergence"
859 default = false
860 alias = [["experimental", "allowdivergence"]]
861
862 [[items]]
863 section = "experimental"
864 name = "evolution.allowunstable"
865
866 [[items]]
867 section = "experimental"
868 name = "evolution.bundle-obsmarker"
869 default = false
870
871 [[items]]
872 section = "experimental"
873 name = "evolution.bundle-obsmarker:mandatory"
874 default = true
875
876 [[items]]
877 section = "experimental"
878 name = "evolution.createmarkers"
879
880 [[items]]
881 section = "experimental"
882 name = "evolution.effect-flags"
883 default = true
884 alias = [["experimental", "effect-flags"]]
885
886 [[items]]
887 section = "experimental"
888 name = "evolution.exchange"
889
890 [[items]]
891 section = "experimental"
892 name = "evolution.report-instabilities"
893 default = true
894
895 [[items]]
896 section = "experimental"
897 name = "evolution.track-operation"
898 default = true
899
900 [[items]]
901 section = "experimental"
902 name = "exportableenviron"
903 default-type = "list_type"
904
905 [[items]]
906 section = "experimental"
907 name = "extendedheader.index"
908
909 [[items]]
910 section = "experimental"
911 name = "extendedheader.similarity"
912 default = false
913
914 [[items]]
915 section = "experimental"
916 name = "extra-filter-revs"
917 documentation = """Repo-level config to prevent a revset from being visible.
918 The target use case is to use `share` to expose different subsets of the same \
919 repository, especially server side. See also `server.view`."""
920
921 [[items]]
922 section = "experimental"
923 name = "graphshorten"
924 default = false
925
926 [[items]]
927 section = "experimental"
928 name = "graphstyle.grandparent"
929 default-type = "dynamic"
930
931 [[items]]
932 section = "experimental"
933 name = "graphstyle.missing"
934 default-type = "dynamic"
935
936 [[items]]
937 section = "experimental"
938 name = "graphstyle.parent"
939 default-type = "dynamic"
940
941 [[items]]
942 section = "experimental"
943 name = "hook-track-tags"
944 default = false
945
946 [[items]]
947 section = "experimental"
948 name = "httppostargs"
949 default = false
950
951 [[items]]
952 section = "experimental"
953 name = "log.topo"
954 default = false
955
956 [[items]]
957 section = "experimental"
958 name = "maxdeltachainspan"
959 default = -1
960
961 [[items]]
962 section = "experimental"
963 name = "merge-track-salvaged"
964 default = false
965 documentation = """Tracks files which were undeleted (merge might delete them \
966 but we explicitly kept/undeleted them) and creates new filenodes for them."""
967
968 [[items]]
969 section = "experimental"
970 name = "merge.checkpathconflicts"
971 default = false
972
973 [[items]]
974 section = "experimental"
975 name = "mmapindexthreshold"
976
977 [[items]]
978 section = "experimental"
979 name = "narrow"
980 default = false
981
982 [[items]]
983 section = "experimental"
984 name = "nointerrupt"
985 default = false
986
987 [[items]]
988 section = "experimental"
989 name = "nointerrupt-interactiveonly"
990 default = true
991
992 [[items]]
993 section = "experimental"
994 name = "nonnormalparanoidcheck"
995 default = false
996
997 [[items]]
998 section = "experimental"
999 name = "obsmarkers-exchange-debug"
1000 default = false
1001
1002 [[items]]
1003 section = "experimental"
1004 name = "rebaseskipobsolete"
1005 default = true
1006
1007 [[items]]
1008 section = "experimental"
1009 name = "remotenames"
1010 default = false
1011
1012 [[items]]
1013 section = "experimental"
1014 name = "removeemptydirs"
1015 default = true
1016
1017 [[items]]
1018 section = "experimental"
1019 name = "revert.interactive.select-to-keep"
1020 default = false
1021
1022 [[items]]
1023 section = "experimental"
1024 name = "revisions.disambiguatewithin"
1025
1026 [[items]]
1027 section = "experimental"
1028 name = "revisions.prefixhexnode"
1029 default = false
1030
1031 # "out of experimental" todo list.
1032 #
1033 # * include management of a persistent nodemap in the main docket
1034 # * enforce a "no-truncate" policy for mmap safety
1035 # - for censoring operation
1036 # - for stripping operation
1037 # - for rollback operation
1038 # * proper streaming (race free) of the docket file
1039 # * track garbage data to evemtually allow rewriting -existing- sidedata.
1040 # * Exchange-wise, we will also need to do something more efficient than
1041 # keeping references to the affected revlogs, especially memory-wise when
1042 # rewriting sidedata.
1043 # * introduce a proper solution to reduce the number of filelog related files.
1044 # * use caching for reading sidedata (similar to what we do for data).
1045 # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation).
1046 # * Improvement to consider
1047 # - avoid compression header in chunk using the default compression?
1048 # - forbid "inline" compression mode entirely?
1049 # - split the data offset and flag field (the 2 bytes save are mostly trouble)
1050 # - keep track of uncompressed -chunk- size (to preallocate memory better)
1051 # - keep track of chain base or size (probably not that useful anymore)
1052 [[items]]
1053 section = "experimental"
1054 name = "revlogv2"
1055
1056 [[items]]
1057 section = "experimental"
1058 name = "rust.index"
1059 default = false
1060
1061 [[items]]
1062 section = "experimental"
1063 name = "server.allow-hidden-access"
1064 default-type = "list_type"
1065
1066 [[items]]
1067 section = "experimental"
1068 name = "server.filesdata.recommended-batch-size"
1069 default = 50000
1070
1071 [[items]]
1072 section = "experimental"
1073 name = "server.manifestdata.recommended-batch-size"
1074 default = 100000
1075
1076 [[items]]
1077 section = "experimental"
1078 name = "server.stream-narrow-clones"
1079 default = false
1080
1081 [[items]]
1082 section = "experimental"
1083 name = "single-head-per-branch"
1084 default = false
1085
1086 [[items]]
1087 section = "experimental"
1088 name = "single-head-per-branch:account-closed-heads"
1089 default = false
1090
1091 [[items]]
1092 section = "experimental"
1093 name = "single-head-per-branch:public-changes-only"
1094 default = false
1095
1096 [[items]]
1097 section = "experimental"
1098 name = "sparse-read"
1099 default = false
1100
1101 [[items]]
1102 section = "experimental"
1103 name = "sparse-read.density-threshold"
1104 default = 0.5
1105
1106 [[items]]
1107 section = "experimental"
1108 name = "sparse-read.min-gap-size"
1109 default = "65K"
1110
1111 [[items]]
1112 section = "experimental"
1113 name = "stream-v3"
1114 default = false
1115
1116 [[items]]
1117 section = "experimental"
1118 name = "treemanifest"
1119 default = false
1120
1121 [[items]]
1122 section = "experimental"
1123 name = "update.atomic-file"
1124 default = false
1125
1126 [[items]]
1127 section = "experimental"
1128 name = "web.full-garbage-collection-rate"
1129 default = 1 # still forcing a full collection on each request
1130
1131 [[items]]
1132 section = "experimental"
1133 name = "worker.repository-upgrade"
1134 default = false
1135
1136 [[items]]
1137 section = "experimental"
1138 name = "worker.wdir-get-thread-safe"
1139 default = false
1140
1141 [[items]]
1142 section = "experimental"
1143 name = "xdiff"
1144 default = false
1145
1146 [[items]]
1147 section = "extdata"
1148 name = ".*"
1149 generic = true
1150
1151 [[items]]
1152 section = "extensions"
1153 name = "[^:]*"
1154 generic = true
1155
1156 [[items]]
1157 section = "extensions"
1158 name = "[^:]*:required"
1159 default = false
1160 generic = true
1161
1162 [[items]]
1163 section = "format"
1164 name = "bookmarks-in-store"
1165 default = false
1166
1167 [[items]]
1168 section = "format"
1169 name = "chunkcachesize"
1170 experimental = true
1171
1172 [[items]]
1173 section = "format"
1174 name = "dotencode"
1175 default = true
1176
1177 # The interaction between the archived phase and obsolescence markers needs to
1178 # be sorted out before wider usage of this are to be considered.
1179 #
1180 # At the time this message is written, behavior when archiving obsolete
1181 # changeset differ significantly from stripping. As part of stripping, we also
1182 # remove the obsolescence marker associated to the stripped changesets,
1183 # revealing the precedecessors changesets when applicable. When archiving, we
1184 # don't touch the obsolescence markers, keeping everything hidden. This can
1185 # result in quite confusing situation for people combining exchanging draft
1186 # with the archived phases. As some markers needed by others may be skipped
1187 # during exchange.
1188 [[items]]
1189 section = "format"
1190 name = "exp-archived-phase"
1191 default = false
1192 experimental = true
1193
1194 # Experimental TODOs:
1195 #
1196 # * Same as for revlogv2 (but for the reduction of the number of files)
1197 # * Actually computing the rank of changesets
1198 # * Improvement to investigate
1199 # - storing .hgtags fnode
1200 # - storing branch related identifier
1201 [[items]]
1202 section = "format"
1203 name = "exp-use-changelog-v2"
1204 experimental = true
1205
1206 [[items]]
1207 section = "format"
1208 name = "exp-use-copies-side-data-changeset"
1209 default = false
1210 experimental = true
1211
1212 [[items]]
1213 section = "format"
1214 name = "generaldelta"
1215 default = false
1216 experimental = true
1217
1218 [[items]]
1219 section = "format"
1220 name = "manifestcachesize"
1221 experimental = true
1222
1223 [[items]]
1224 section = "format"
1225 name = "maxchainlen"
1226 default-type = "dynamic"
1227 experimental = true
1228
1229 [[items]]
1230 section = "format"
1231 name = "obsstore-version"
1232
1233 [[items]]
1234 section = "format"
1235 name = "revlog-compression"
1236 default-type = "lambda"
1237 alias = [["experimental", "format.compression"]]
1238 default = [ "zstd", "zlib",]
1239
1240 [[items]]
1241 section = "format"
1242 name = "sparse-revlog"
1243 default = true
1244
1245 [[items]]
1246 section = "format"
1247 name = "use-dirstate-tracked-hint"
1248 default = false
1249 experimental = true
1250
1251 [[items]]
1252 section = "format"
1253 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories"
1254 default = false
1255 experimental = true
1256
1257 [[items]]
1258 section = "format"
1259 name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet"
1260 default = false
1261 experimental = true
1262
1263 [[items]]
1264 section = "format"
1265 name = "use-dirstate-tracked-hint.version"
1266 default = 1
1267 experimental = true
1268
1269 [[items]]
1270 section = "format"
1271 name = "use-dirstate-v2"
1272 default = false
1273 alias = [["format", "exp-rc-dirstate-v2"]]
1274 experimental = true
1275 documentation = """Enables dirstate-v2 format *when creating a new repository*.
1276 Which format to use for existing repos is controlled by `.hg/requires`."""
1277
1278 [[items]]
1279 section = "format"
1280 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories"
1281 default = false
1282 experimental = true
1283
1284 [[items]]
1285 section = "format"
1286 name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet"
1287 default = false
1288 experimental = true
1289
1290 # Having this on by default means we are confident about the scaling of phases.
1291 # This is not garanteed to be the case at the time this message is written.
1292 [[items]]
1293 section = "format"
1294 name = "use-internal-phase"
1295 default = false
1296 experimental = true
1297
1298 [[items]]
1299 section = "format"
1300 name = "use-persistent-nodemap"
1301 default-type = "dynamic"
1302
1303 [[items]]
1304 section = "format"
1305 name = "use-share-safe"
1306 default = true
1307
1308 [[items]]
1309 section = "format"
1310 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories"
1311 default = false
1312 experimental = true
1313
1314 [[items]]
1315 section = "format"
1316 name = "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet"
1317 default = false
1318 experimental = true
1319
1320 [[items]]
1321 section = "format"
1322 name = "usefncache"
1323 default = true
1324
1325 [[items]]
1326 section = "format"
1327 name = "usegeneraldelta"
1328 default = true
1329
1330 [[items]]
1331 section = "format"
1332 name = "usestore"
1333 default = true
1334
1335 [[items]]
1336 section = "fsmonitor"
1337 name = "warn_update_file_count"
1338 default = 50000
1339
1340 [[items]]
1341 section = "fsmonitor"
1342 name = "warn_update_file_count_rust"
1343 default = 400000
1344
1345 [[items]]
1346 section = "fsmonitor"
1347 name = "warn_when_unused"
1348 default = true
1349
1350 [[items]]
1351 section = "help"
1352 name = 'hidden-command\..*'
1353 default = false
1354 generic = true
1355
1356 [[items]]
1357 section = "help"
1358 name = 'hidden-topic\..*'
1359 default = false
1360 generic = true
1361
1362 [[items]]
1363 section = "hgweb-paths"
1364 name = ".*"
1365 default-type = "list_type"
1366 generic = true
1367
1368 [[items]]
1369 section = "hooks"
1370 name = ".*:run-with-plain"
1371 default = true
1372 generic = true
1373
1374 [[items]]
1375 section = "hooks"
1376 name = "[^:]*"
1377 default-type = "dynamic"
1378 generic = true
1379
1380 [[items]]
1381 section = "hostfingerprints"
1382 name = ".*"
1383 default-type = "list_type"
1384 generic = true
1385
1386 [[items]]
1387 section = "hostsecurity"
1388 name = ".*:ciphers$"
1389 default-type = "dynamic"
1390 generic = true
1391
1392 [[items]]
1393 section = "hostsecurity"
1394 name = ".*:fingerprints$"
1395 default-type = "list_type"
1396 generic = true
1397
1398 [[items]]
1399 section = "hostsecurity"
1400 name = ".*:minimumprotocol$"
1401 default-type = "dynamic"
1402 generic = true
1403
1404 [[items]]
1405 section = "hostsecurity"
1406 name = ".*:verifycertsfile$"
1407 generic = true
1408
1409 [[items]]
1410 section = "hostsecurity"
1411 name = "ciphers"
1412
1413 [[items]]
1414 section = "hostsecurity"
1415 name = "minimumprotocol"
1416 default-type = "dynamic"
1417
1418 [[items]]
1419 section = "http"
1420 name = "timeout"
1421
1422 [[items]]
1423 section = "http_proxy"
1424 name = "always"
1425 default = false
1426
1427 [[items]]
1428 section = "http_proxy"
1429 name = "host"
1430
1431 [[items]]
1432 section = "http_proxy"
1433 name = "no"
1434 default-type = "list_type"
1435
1436 [[items]]
1437 section = "http_proxy"
1438 name = "passwd"
1439
1440 [[items]]
1441 section = "http_proxy"
1442 name = "user"
1443
1444 [[items]]
1445 section = "logtoprocess"
1446 name = "command"
1447
1448 [[items]]
1449 section = "logtoprocess"
1450 name = "commandexception"
1451
1452 [[items]]
1453 section = "logtoprocess"
1454 name = "commandfinish"
1455
1456 [[items]]
1457 section = "logtoprocess"
1458 name = "develwarn"
1459
1460 [[items]]
1461 section = "logtoprocess"
1462 name = "uiblocked"
1463
1464 [[items]]
1465 section = "merge"
1466 name = "checkignored"
1467 default = "abort"
1468
1469 [[items]]
1470 section = "merge"
1471 name = "checkunknown"
1472 default = "abort"
1473
1474 [[items]]
1475 section = "merge"
1476 name = "disable-partial-tools"
1477 default = false
1478 experimental = true
1479
1480 [[items]]
1481 section = "merge"
1482 name = "followcopies"
1483 default = true
1484
1485 [[items]]
1486 section = "merge"
1487 name = "on-failure"
1488 default = "continue"
1489
1490 [[items]]
1491 section = "merge"
1492 name = "preferancestor"
1493 default-type = "lambda"
1494 default = ["*"]
1495 experimental = true
1496
1497 [[items]]
1498 section = "merge"
1499 name = "strict-capability-check"
1500 default = false
1501
1502 [[items]]
1503 section = "merge-tools"
1504 name = ".*"
1505 generic = true
1506
1507 [[items]]
1508 section = "merge-tools"
1509 name = '.*\.args$'
1510 default = "$local $base $other"
1511 generic = true
1512 priority = -1
1513
1514 [[items]]
1515 section = "merge-tools"
1516 name = '.*\.binary$'
1517 default = false
1518 generic = true
1519 priority = -1
1520
1521 [[items]]
1522 section = "merge-tools"
1523 name = '.*\.check$'
1524 default-type = "list_type"
1525 generic = true
1526 priority = -1
1527
1528 [[items]]
1529 section = "merge-tools"
1530 name = '.*\.checkchanged$'
1531 default = false
1532 generic = true
1533 priority = -1
1534
1535 [[items]]
1536 section = "merge-tools"
1537 name = '.*\.executable$'
1538 default-type = "dynamic"
1539 generic = true
1540 priority = -1
1541
1542 [[items]]
1543 section = "merge-tools"
1544 name = '.*\.fixeol$'
1545 default = false
1546 generic = true
1547 priority = -1
1548
1549 [[items]]
1550 section = "merge-tools"
1551 name = '.*\.gui$'
1552 default = false
1553 generic = true
1554 priority = -1
1555
1556 [[items]]
1557 section = "merge-tools"
1558 name = '.*\.mergemarkers$'
1559 default = "basic"
1560 generic = true
1561 priority = -1
1562
1563 [[items]]
1564 section = "merge-tools"
1565 name = '.*\.mergemarkertemplate$' # take from command-templates.mergemarker
1566 default-type = "dynamic"
1567 generic = true
1568 priority = -1
1569
1570 [[items]]
1571 section = "merge-tools"
1572 name = '.*\.premerge$'
1573 default-type = "dynamic"
1574 generic = true
1575 priority = -1
1576
1577 [[items]]
1578 section = "merge-tools"
1579 name = '.*\.priority$'
1580 default = 0
1581 generic = true
1582 priority = -1
1583
1584 [[items]]
1585 section = "merge-tools"
1586 name = '.*\.regappend$'
1587 default = ""
1588 generic = true
1589 priority = -1
1590
1591 [[items]]
1592 section = "merge-tools"
1593 name = '.*\.symlink$'
1594 default = false
1595 generic = true
1596 priority = -1
1597
1598 [[items]]
1599 section = "pager"
1600 name = "attend-.*"
1601 default-type = "dynamic"
1602 generic = true
1603
1604 [[items]]
1605 section = "pager"
1606 name = "ignore"
1607 default-type = "list_type"
1608
1609 [[items]]
1610 section = "pager"
1611 name = "pager"
1612 default-type = "dynamic"
1613
1614 [[items]]
1615 section = "partial-merge-tools"
1616 name = ".*"
1617 generic = true
1618 experimental = true
1619
1620 [[items]]
1621 section = "partial-merge-tools"
1622 name = '.*\.args'
1623 default = "$local $base $other"
1624 generic = true
1625 priority = -1
1626 experimental = true
1627
1628 [[items]]
1629 section = "partial-merge-tools"
1630 name = '.*\.disable'
1631 default = false
1632 generic = true
1633 priority = -1
1634 experimental = true
1635
1636 [[items]]
1637 section = "partial-merge-tools"
1638 name = '.*\.executable$'
1639 default-type = "dynamic"
1640 generic = true
1641 priority = -1
1642 experimental = true
1643
1644 [[items]]
1645 section = "partial-merge-tools"
1646 name = '.*\.order'
1647 default = 0
1648 generic = true
1649 priority = -1
1650 experimental = true
1651
1652 [[items]]
1653 section = "partial-merge-tools"
1654 name = '.*\.patterns'
1655 default-type = "dynamic"
1656 generic = true
1657 priority = -1
1658 experimental = true
1659
1660 [[items]]
1661 section = "patch"
1662 name = "eol"
1663 default = "strict"
1664
1665 [[items]]
1666 section = "patch"
1667 name = "fuzz"
1668 default = 2
1669
1670 [[items]]
1671 section = "paths"
1672 name = "[^:]*"
1673 generic = true
1674
1675 [[items]]
1676 section = "paths"
1677 name = ".*:bookmarks.mode"
1678 default = "default"
1679 generic = true
1680
1681 [[items]]
1682 section = "paths"
1683 name = ".*:multi-urls"
1684 default = false
1685 generic = true
1686
1687 [[items]]
1688 section = "paths"
1689 name = ".*:pulled-delta-reuse-policy"
1690 generic = true
1691
1692 [[items]]
1693 section = "paths"
1694 name = ".*:pushrev"
1695 generic = true
1696
1697 [[items]]
1698 section = "paths"
1699 name = ".*:pushurl"
1700 generic = true
1701
1702 [[items]]
1703 section = "paths"
1704 name = "default"
1705
1706 [[items]]
1707 section = "paths"
1708 name = "default-push"
1709
1710 [[items]]
1711 section = "phases"
1712 name = "checksubrepos"
1713 default = "follow"
1714
1715 [[items]]
1716 section = "phases"
1717 name = "new-commit"
1718 default = "draft"
1719
1720 [[items]]
1721 section = "phases"
1722 name = "publish"
1723 default = true
1724
1725 [[items]]
1726 section = "profiling"
1727 name = "enabled"
1728 default = false
1729
1730 [[items]]
1731 section = "profiling"
1732 name = "format"
1733 default = "text"
1734
1735 [[items]]
1736 section = "profiling"
1737 name = "freq"
1738 default = 1000
1739
1740 [[items]]
1741 section = "profiling"
1742 name = "limit"
1743 default = 30
1744
1745 [[items]]
1746 section = "profiling"
1747 name = "nested"
1748 default = 0
1749
1750 [[items]]
1751 section = "profiling"
1752 name = "output"
1753
1754 [[items]]
1755 section = "profiling"
1756 name = "showmax"
1757 default = 0.999
1758
1759 [[items]]
1760 section = "profiling"
1761 name = "showmin"
1762 default-type = "dynamic"
1763
1764 [[items]]
1765 section = "profiling"
1766 name = "showtime"
1767 default = true
1768
1769 [[items]]
1770 section = "profiling"
1771 name = "sort"
1772 default = "inlinetime"
1773
1774 [[items]]
1775 section = "profiling"
1776 name = "statformat"
1777 default = "hotpath"
1778
1779 [[items]]
1780 section = "profiling"
1781 name = "time-track"
1782 default-type = "dynamic"
1783
1784 [[items]]
1785 section = "profiling"
1786 name = "type"
1787 default = "stat"
1788
1789 [[items]]
1790 section = "progress"
1791 name = "assume-tty"
1792 default = false
1793
1794 [[items]]
1795 section = "progress"
1796 name = "changedelay"
1797 default = 1
1798
1799 [[items]]
1800 section = "progress"
1801 name = "clear-complete"
1802 default = true
1803
1804 [[items]]
1805 section = "progress"
1806 name = "debug"
1807 default = false
1808
1809 [[items]]
1810 section = "progress"
1811 name = "delay"
1812 default = 3
1813
1814 [[items]]
1815 section = "progress"
1816 name = "disable"
1817 default = false
1818
1819 [[items]]
1820 section = "progress"
1821 name = "estimateinterval"
1822 default = 60.0
1823
1824 [[items]]
1825 section = "progress"
1826 name = "format"
1827 default-type = "lambda"
1828 default = [ "topic", "bar", "number", "estimate",]
1829
1830 [[items]]
1831 section = "progress"
1832 name = "refresh"
1833 default = 0.1
1834
1835 [[items]]
1836 section = "progress"
1837 name = "width"
1838 default-type = "dynamic"
1839
1840 [[items]]
1841 section = "pull"
1842 name = "confirm"
1843 default = false
1844
1845 [[items]]
1846 section = "push"
1847 name = "pushvars.server"
1848 default = false
1849
1850 [[items]]
1851 section = "rebase"
1852 name = "experimental.inmemory"
1853 default = false
1854
1855 [[items]]
1856 section = "rebase"
1857 name = "singletransaction"
1858 default = false
1859
1860 [[items]]
1861 section = "rebase"
1862 name = "store-source"
1863 default = true
1864 experimental = true
1865 documentation = """Controls creation of a `rebase_source` extra field during rebase.
1866 When false, no such field is created. This is useful e.g. for incrementally \
1867 converting changesets and then rebasing them onto an existing repo.
1868 WARNING: this is an advanced setting reserved for people who know \
1869 exactly what they are doing. Misuse of this setting can easily \
1870 result in obsmarker cycles and a vivid headache."""
1871
1872 [[items]]
1873 section = "rewrite"
1874 name = "backup-bundle"
1875 default = true
1876 alias = [["ui", "history-editing-backup"]]
1877
1878 [[items]]
1879 section = "rewrite"
1880 name = "empty-successor"
1881 default = "skip"
1882 experimental = true
1883
1884 [[items]]
1885 section = "rewrite"
1886 name = "update-timestamp"
1887 default = false
1888
1889 [[items]]
1890 section = "server"
1891 name = "bookmarks-pushkey-compat"
1892 default = true
1893
1894 [[items]]
1895 section = "server"
1896 name = "bundle1"
1897 default = true
1898
1899 [[items]]
1900 section = "server"
1901 name = "bundle1.pull"
1902
1903 [[items]]
1904 section = "server"
1905 name = "bundle1.push"
1906
1907 [[items]]
1908 section = "server"
1909 name = "bundle1gd"
1910
1911 [[items]]
1912 section = "server"
1913 name = "bundle1gd.pull"
1914
1915 [[items]]
1916 section = "server"
1917 name = "bundle1gd.push"
1918
1919 [[items]]
1920 section = "server"
1921 name = "bundle2.stream"
1922 default = true
1923 alias = [["experimental", "bundle2.stream"]]
1924
1925 [[items]]
1926 section = "server"
1927 name = "compressionengines"
1928 default-type = "list_type"
1929
1930 [[items]]
1931 section = "server"
1932 name = "concurrent-push-mode"
1933 default = "check-related"
1934
1935 [[items]]
1936 section = "server"
1937 name = "disablefullbundle"
1938 default = false
1939
1940 [[items]]
1941 section = "server"
1942 name = "maxhttpheaderlen"
1943 default = 1024
1944
1945 [[items]]
1946 section = "server"
1947 name = "preferuncompressed"
1948 default = false
1949
1950 [[items]]
1951 section = "server"
1952 name = "pullbundle"
1953 default = true
1954
1955 [[items]]
1956 section = "server"
1957 name = "streamunbundle"
1958 default = false
1959
1960 [[items]]
1961 section = "server"
1962 name = "uncompressed"
1963 default = true
1964
1965 [[items]]
1966 section = "server"
1967 name = "uncompressedallowsecret"
1968 default = false
1969
1970 [[items]]
1971 section = "server"
1972 name = "validate"
1973 default = false
1974
1975 [[items]]
1976 section = "server"
1977 name = "view"
1978 default = "served"
1979
1980 [[items]]
1981 section = "server"
1982 name = "zliblevel"
1983 default = -1
1984
1985 [[items]]
1986 section = "server"
1987 name = "zstdlevel"
1988 default = 3
1989
1990 [[items]]
1991 section = "share"
1992 name = "pool"
1993
1994 [[items]]
1995 section = "share"
1996 name = "poolnaming"
1997 default = "identity"
1998
1999 [[items]]
2000 section = "share"
2001 name = "safe-mismatch.source-not-safe"
2002 default = "abort"
2003
2004 [[items]]
2005 section = "share"
2006 name = "safe-mismatch.source-not-safe.warn"
2007 default = true
2008
2009 [[items]]
2010 section = "share"
2011 name = "safe-mismatch.source-not-safe:verbose-upgrade"
2012 default = true
2013
2014 [[items]]
2015 section = "share"
2016 name = "safe-mismatch.source-safe"
2017 default = "abort"
2018
2019 [[items]]
2020 section = "share"
2021 name = "safe-mismatch.source-safe.warn"
2022 default = true
2023
2024 [[items]]
2025 section = "share"
2026 name = "safe-mismatch.source-safe:verbose-upgrade"
2027 default = true
2028
2029 [[items]]
2030 section = "shelve"
2031 name = "maxbackups"
2032 default = 10
2033
2034 [[items]]
2035 section = "shelve"
2036 name = "store"
2037 default = "internal"
2038 experimental = true
2039
2040 [[items]]
2041 section = "smtp"
2042 name = "host"
2043
2044 [[items]]
2045 section = "smtp"
2046 name = "local_hostname"
2047
2048 [[items]]
2049 section = "smtp"
2050 name = "password"
2051
2052 [[items]]
2053 section = "smtp"
2054 name = "port"
2055 default-type = "dynamic"
2056
2057 [[items]]
2058 section = "smtp"
2059 name = "tls"
2060 default = "none"
2061
2062 [[items]]
2063 section = "smtp"
2064 name = "username"
2065
2066 [[items]]
2067 section = "sparse"
2068 name = "missingwarning"
2069 default = true
2070 experimental = true
2071
2072 [[items]]
2073 section = "storage"
2074 name = "dirstate-v2.slow-path"
2075 default = "abort"
2076 experimental = true # experimental as long as format.use-dirstate-v2 is.
2077
2078 [[items]]
2079 section = "storage"
2080 name = "new-repo-backend"
2081 default = "revlogv1"
2082 experimental = true
2083
2084 [[items]]
2085 section = "storage"
2086 name = "revlog.delta-parent-search.candidate-group-chunk-size"
2087 default = 20
2088
2089 [[items]]
2090 section = "storage"
2091 name = "revlog.issue6528.fix-incoming"
2092 default = true
2093
2094 [[items]]
2095 section = "storage"
2096 name = "revlog.optimize-delta-parent-choice"
2097 default = true
2098 alias = [["format", "aggressivemergedeltas"]]
2099
2100 [[items]]
2101 section = "storage"
2102 name = "revlog.persistent-nodemap.mmap"
2103 default = true
2104
2105 [[items]]
2106 section = "storage"
2107 name = "revlog.persistent-nodemap.slow-path"
2108 default = "abort"
2109
2110 [[items]]
2111 section = "storage"
2112 name = "revlog.reuse-external-delta"
2113 default = true
2114
2115 [[items]]
2116 section = "storage"
2117 name = "revlog.reuse-external-delta-parent"
2118 documentation = """This option is true unless `format.generaldelta` is set."""
2119
2120 [[items]]
2121 section = "storage"
2122 name = "revlog.zlib.level"
2123
2124 [[items]]
2125 section = "storage"
2126 name = "revlog.zstd.level"
2127
2128 [[items]]
2129 section = "subrepos"
2130 name = "allowed"
2131 default-type = "dynamic" # to make backporting simpler
2132
2133 [[items]]
2134 section = "subrepos"
2135 name = "git:allowed"
2136 default-type = "dynamic"
2137
2138 [[items]]
2139 section = "subrepos"
2140 name = "hg:allowed"
2141 default-type = "dynamic"
2142
2143 [[items]]
2144 section = "subrepos"
2145 name = "svn:allowed"
2146 default-type = "dynamic"
2147
2148 [[items]]
2149 section = "templateconfig"
2150 name = ".*"
2151 default-type = "dynamic"
2152 generic = true
2153
2154 [[items]]
2155 section = "templates"
2156 name = ".*"
2157 generic = true
2158
2159 [[items]]
2160 section = "trusted"
2161 name = "groups"
2162 default-type = "list_type"
2163
2164 [[items]]
2165 section = "trusted"
2166 name = "users"
2167 default-type = "list_type"
2168
2169 [[items]]
2170 section = "ui"
2171 name = "_usedassubrepo"
2172 default = false
2173
2174 [[items]]
2175 section = "ui"
2176 name = "allowemptycommit"
2177 default = false
2178
2179 [[items]]
2180 section = "ui"
2181 name = "archivemeta"
2182 default = true
2183
2184 [[items]]
2185 section = "ui"
2186 name = "askusername"
2187 default = false
2188
2189 [[items]]
2190 section = "ui"
2191 name = "available-memory"
2192
2193 [[items]]
2194 section = "ui"
2195 name = "clonebundlefallback"
2196 default = false
2197
2198 [[items]]
2199 section = "ui"
2200 name = "clonebundleprefers"
2201 default-type = "list_type"
2202
2203 [[items]]
2204 section = "ui"
2205 name = "clonebundles"
2206 default = true
2207
2208 [[items]]
2209 section = "ui"
2210 name = "color"
2211 default = "auto"
2212
2213 [[items]]
2214 section = "ui"
2215 name = "commitsubrepos"
2216 default = false
2217
2218 [[items]]
2219 section = "ui"
2220 name = "debug"
2221 default = false
2222
2223 [[items]]
2224 section = "ui"
2225 name = "debugger"
2226
2227 [[items]]
2228 section = "ui"
2229 name = "detailed-exit-code"
2230 default = false
2231 experimental = true
2232
2233 [[items]]
2234 section = "ui"
2235 name = "editor"
2236 default-type = "dynamic"
2237
2238 [[items]]
2239 section = "ui"
2240 name = "fallbackencoding"
2241
2242 [[items]]
2243 section = "ui"
2244 name = "forcecwd"
2245
2246 [[items]]
2247 section = "ui"
2248 name = "forcemerge"
2249
2250 [[items]]
2251 section = "ui"
2252 name = "formatdebug"
2253 default = false
2254
2255 [[items]]
2256 section = "ui"
2257 name = "formatjson"
2258 default = false
2259
2260 [[items]]
2261 section = "ui"
2262 name = "formatted"
2263
2264 [[items]]
2265 section = "ui"
2266 name = "interactive"
2267
2268 [[items]]
2269 section = "ui"
2270 name = "interface"
2271
2272 [[items]]
2273 section = "ui"
2274 name = "interface.chunkselector"
2275
2276 [[items]]
2277 section = "ui"
2278 name = "large-file-limit"
2279 default = 10485760
2280
2281 [[items]]
2282 section = "ui"
2283 name = "logblockedtimes"
2284 default = false
2285
2286 [[items]]
2287 section = "ui"
2288 name = "merge"
2289
2290 [[items]]
2291 section = "ui"
2292 name = "mergemarkers"
2293 default = "basic"
2294
2295 [[items]]
2296 section = "ui"
2297 name = "message-output"
2298 default = "stdio"
2299
2300 [[items]]
2301 section = "ui"
2302 name = "nontty"
2303 default = false
2304
2305 [[items]]
2306 section = "ui"
2307 name = "origbackuppath"
2308
2309 [[items]]
2310 section = "ui"
2311 name = "paginate"
2312 default = true
2313
2314 [[items]]
2315 section = "ui"
2316 name = "patch"
2317
2318 [[items]]
2319 section = "ui"
2320 name = "portablefilenames"
2321 default = "warn"
2322
2323 [[items]]
2324 section = "ui"
2325 name = "promptecho"
2326 default = false
2327
2328 [[items]]
2329 section = "ui"
2330 name = "quiet"
2331 default = false
2332
2333 [[items]]
2334 section = "ui"
2335 name = "quietbookmarkmove"
2336 default = false
2337
2338 [[items]]
2339 section = "ui"
2340 name = "relative-paths"
2341 default = "legacy"
2342
2343 [[items]]
2344 section = "ui"
2345 name = "remotecmd"
2346 default = "hg"
2347
2348 [[items]]
2349 section = "ui"
2350 name = "report_untrusted"
2351 default = true
2352
2353 [[items]]
2354 section = "ui"
2355 name = "rollback"
2356 default = true
2357
2358 [[items]]
2359 section = "ui"
2360 name = "signal-safe-lock"
2361 default = true
2362
2363 [[items]]
2364 section = "ui"
2365 name = "slash"
2366 default = false
2367
2368 [[items]]
2369 section = "ui"
2370 name = "ssh"
2371 default = "ssh"
2372
2373 [[items]]
2374 section = "ui"
2375 name = "ssherrorhint"
2376
2377 [[items]]
2378 section = "ui"
2379 name = "statuscopies"
2380 default = false
2381
2382 [[items]]
2383 section = "ui"
2384 name = "strict"
2385 default = false
2386
2387 [[items]]
2388 section = "ui"
2389 name = "style"
2390 default = ""
2391
2392 [[items]]
2393 section = "ui"
2394 name = "supportcontact"
2395
2396 [[items]]
2397 section = "ui"
2398 name = "textwidth"
2399 default = 78
2400
2401 [[items]]
2402 section = "ui"
2403 name = "timeout"
2404 default = "600"
2405
2406 [[items]]
2407 section = "ui"
2408 name = "timeout.warn"
2409 default = 0
2410
2411 [[items]]
2412 section = "ui"
2413 name = "timestamp-output"
2414 default = false
2415
2416 [[items]]
2417 section = "ui"
2418 name = "traceback"
2419 default = false
2420
2421 [[items]]
2422 section = "ui"
2423 name = "tweakdefaults"
2424 default = false
2425
2426 [[items]]
2427 section = "ui"
2428 name = "username"
2429 alias = [["ui", "user"]]
2430
2431 [[items]]
2432 section = "ui"
2433 name = "verbose"
2434 default = false
2435
2436 [[items]]
2437 section = "verify"
2438 name = "skipflags"
2439 default = 0
2440
2441 [[items]]
2442 section = "web"
2443 name = "accesslog"
2444 default = "-"
2445
2446 [[items]]
2447 section = "web"
2448 name = "address"
2449 default = ""
2450
2451 [[items]]
2452 section = "web"
2453 name = "allow-archive"
2454 default-type = "list_type"
2455 alias = [["web", "allow_archive"]]
2456
2457 [[items]]
2458 section = "web"
2459 name = "allow-pull"
2460 default = true
2461 alias = [["web", "allowpull"]]
2462
2463 [[items]]
2464 section = "web"
2465 name = "allow-push"
2466 default-type = "list_type"
2467 alias = [["web", "allow_push"]]
2468
2469 [[items]]
2470 section = "web"
2471 name = "allow_read"
2472 default-type = "list_type"
2473
2474 [[items]]
2475 section = "web"
2476 name = "allowbz2"
2477 default = false
2478
2479 [[items]]
2480 section = "web"
2481 name = "allowgz"
2482 default = false
2483
2484 [[items]]
2485 section = "web"
2486 name = "allowzip"
2487 default = false
2488
2489 [[items]]
2490 section = "web"
2491 name = "archivesubrepos"
2492 default = false
2493
2494 [[items]]
2495 section = "web"
2496 name = "baseurl"
2497
2498 [[items]]
2499 section = "web"
2500 name = "cacerts"
2501
2502 [[items]]
2503 section = "web"
2504 name = "cache"
2505 default = true
2506
2507 [[items]]
2508 section = "web"
2509 name = "certificate"
2510
2511 [[items]]
2512 section = "web"
2513 name = "collapse"
2514 default = false
2515
2516 [[items]]
2517 section = "web"
2518 name = "comparisoncontext"
2519 default = 5
2520
2521 [[items]]
2522 section = "web"
2523 name = "contact"
2524
2525 [[items]]
2526 section = "web"
2527 name = "csp"
2528
2529 [[items]]
2530 section = "web"
2531 name = "deny_push"
2532 default-type = "list_type"
2533
2534 [[items]]
2535 section = "web"
2536 name = "deny_read"
2537 default-type = "list_type"
2538
2539 [[items]]
2540 section = "web"
2541 name = "descend"
2542 default = true
2543
2544 [[items]]
2545 section = "web"
2546 name = "description"
2547 default = ""
2548
2549 [[items]]
2550 section = "web"
2551 name = "encoding"
2552 default-type = "lazy_module"
2553 default = "encoding.encoding"
2554
2555 [[items]]
2556 section = "web"
2557 name = "errorlog"
2558 default = "-"
2559
2560 [[items]]
2561 section = "web"
2562 name = "guessmime"
2563 default = false
2564
2565 [[items]]
2566 section = "web"
2567 name = "hidden"
2568 default = false
2569
2570 [[items]]
2571 section = "web"
2572 name = "ipv6"
2573 default = false
2574
2575 [[items]]
2576 section = "web"
2577 name = "labels"
2578 default-type = "list_type"
2579
2580 [[items]]
2581 section = "web"
2582 name = "logoimg"
2583 default = "hglogo.png"
2584
2585 [[items]]
2586 section = "web"
2587 name = "logourl"
2588 default = "https://mercurial-scm.org/"
2589
2590 [[items]]
2591 section = "web"
2592 name = "maxchanges"
2593 default = 10
2594
2595 [[items]]
2596 section = "web"
2597 name = "maxfiles"
2598 default = 10
2599
2600 [[items]]
2601 section = "web"
2602 name = "maxshortchanges"
2603 default = 60
2604
2605 [[items]]
2606 section = "web"
2607 name = "motd"
2608 default = ""
2609
2610 [[items]]
2611 section = "web"
2612 name = "name"
2613 default-type = "dynamic"
2614
2615 [[items]]
2616 section = "web"
2617 name = "port"
2618 default = 8000
2619
2620 [[items]]
2621 section = "web"
2622 name = "prefix"
2623 default = ""
2624
2625 [[items]]
2626 section = "web"
2627 name = "push_ssl"
2628 default = true
2629
2630 [[items]]
2631 section = "web"
2632 name = "refreshinterval"
2633 default = 20
2634
2635 [[items]]
2636 section = "web"
2637 name = "server-header"
2638
2639 [[items]]
2640 section = "web"
2641 name = "static"
2642
2643 [[items]]
2644 section = "web"
2645 name = "staticurl"
2646
2647 [[items]]
2648 section = "web"
2649 name = "stripes"
2650 default = 1
2651
2652 [[items]]
2653 section = "web"
2654 name = "style"
2655 default = "paper"
2656
2657 [[items]]
2658 section = "web"
2659 name = "templates"
2660
2661 [[items]]
2662 section = "web"
2663 name = "view"
2664 default = "served"
2665 experimental = true
2666
2667 [[items]]
2668 section = "worker"
2669 name = "backgroundclose"
2670 default-type = "dynamic"
2671
2672 [[items]]
2673 section = "worker"
2674 name = "backgroundclosemaxqueue"
2675 # Windows defaults to a limit of 512 open files. A buffer of 128
2676 # should give us enough headway.
2677 default = 384
2678
2679 [[items]]
2680 section = "worker"
2681 name = "backgroundcloseminfilecount"
2682 default = 2048
2683
2684 [[items]]
2685 section = "worker"
2686 name = "backgroundclosethreadcount"
2687 default = 4
2688
2689 [[items]]
2690 section = "worker"
2691 name = "enabled"
2692 default = true
2693
2694 [[items]]
2695 section = "worker"
2696 name = "numcpus"
2697
2698 [[template-applications]]
2699 template = "diff-options"
2700 section = "annotate"
2701
2702 [[template-applications]]
2703 template = "diff-options"
2704 section = "commands"
2705 prefix = "commit.interactive"
2706
2707 [[template-applications]]
2708 template = "diff-options"
2709 section = "commands"
2710 prefix = "revert.interactive"
2711
2712 [[template-applications]]
2713 template = "diff-options"
2714 section = "diff"
2715
2716 [templates]
2717 [[templates.diff-options]]
2718 suffix = "nodates"
2719 default = false
2720
2721 [[templates.diff-options]]
2722 suffix = "showfunc"
2723 default = false
2724
2725 [[templates.diff-options]]
2726 suffix = "unified"
2727
2728 [[templates.diff-options]]
2729 suffix = "git"
2730 default = false
2731
2732 [[templates.diff-options]]
2733 suffix = "ignorews"
2734 default = false
2735
2736 [[templates.diff-options]]
2737 suffix = "ignorewsamount"
2738 default = false
2739
2740 [[templates.diff-options]]
2741 suffix = "ignoreblanklines"
2742 default = false
2743
2744 [[templates.diff-options]]
2745 suffix = "ignorewseol"
2746 default = false
2747
2748 [[templates.diff-options]]
2749 suffix = "nobinary"
2750 default = false
2751
2752 [[templates.diff-options]]
2753 suffix = "noprefix"
2754 default = false
2755
2756 [[templates.diff-options]]
2757 suffix = "word-diff"
2758 default = false
2759