Constant CONFIG_SCHEMA
Source pub const CONFIG_SCHEMA: &str = "{\n \"$schema\": \"http://json-schema.org/draft-04/schema\",\n \"$comment\": \"`taplo` and the corresponding VS Code plugins only support version draft-04 of JSON Schema, see <https://taplo.tamasfe.dev/configuration/developing-schemas.html>. draft-07 is mostly compatible with it, newer versions may not be.\",\n \"title\": \"Jujutsu config\",\n \"type\": \"object\",\n \"description\": \"User configuration for Jujutsu VCS. See https://docs.jj-vcs.dev/latest/config/ for details\",\n \"properties\": {\n \"user\": {\n \"type\": \"object\",\n \"description\": \"Settings about the user\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Full name of the user, used in commits\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"User\'s email address, used in commits\",\n \"format\": \"email\"\n }\n }\n },\n \"operation\": {\n \"type\": \"object\",\n \"description\": \"Metadata to be attached to jj operations (shown in jj op log)\",\n \"properties\": {\n \"hostname\": {\n \"type\": \"string\",\n \"format\": \"hostname\"\n },\n \"username\": {\n \"type\": \"string\"\n }\n }\n },\n \"ui\": {\n \"type\": \"object\",\n \"description\": \"UI settings\",\n \"definitions\": {\n \"conflict-marker-style\": {\n \"type\": \"string\",\n \"description\": \"Conflict marker style to use when materializing conflicts in the working copy\",\n \"enum\": [\n \"diff\",\n \"diff-experimental\",\n \"snapshot\",\n \"git\"\n ],\n \"default\": \"diff\"\n },\n \"command\": {\n \"type\": [\n \"string\",\n \"array\"\n ],\n \"minItems\": 1,\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"command-env\": {\n \"type\": \"object\",\n \"properties\": {\n \"command\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"env\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"command\",\n \"env\"\n ]\n }\n },\n \"properties\": {\n \"default-command\": {\n \"description\": \"Default command to run when no explicit command is given\",\n \"default\": \"log\",\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"color\": {\n \"description\": \"Whether to colorize command output\",\n \"enum\": [\n \"always\",\n \"never\",\n \"debug\",\n \"auto\"\n ],\n \"default\": \"auto\"\n },\n \"paginate\": {\n \"type\": \"string\",\n \"description\": \"Whether or not to use a pager\",\n \"enum\": [\n \"never\",\n \"auto\"\n ],\n \"default\": \"auto\"\n },\n \"pager\": {\n \"description\": \"Pager to use for displaying command output\",\n \"default\": \"less -FRX\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"streampager\": {\n \"type\": \"object\",\n \"description\": \"\':builtin\' (streampager-based) pager configuration\",\n \"properties\": {\n \"interface\": {\n \"description\": \"Whether to quit automatically, whether to clear screen on startup/exit\",\n \"enum\": [\n \"quit-if-one-page\",\n \"full-screen-clear-output\",\n \"quit-quickly-or-clear-output\"\n ],\n \"default\": \"quit-if-one-page\"\n },\n \"wrapping\": {\n \"description\": \"Whether to wrap long lines\",\n \"enum\": [\n \"anywhere\",\n \"word\",\n \"none\"\n ],\n \"default\": \"anywhere\"\n },\n \"show-ruler\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the ruler should start visible\",\n \"default\": true\n }\n }\n },\n \"diff-instructions\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to generate the JJ-INSTRUCTIONS file as part of editing a diff\",\n \"default\": true\n },\n \"graph\": {\n \"type\": \"object\",\n \"description\": \"Options for rendering revision graphs from jj log etc\",\n \"properties\": {\n \"style\": {\n \"description\": \"Style of connectors/markings used to render the graph. See https://docs.jj-vcs.dev/latest/config/#graph-style\",\n \"enum\": [\n \"curved\",\n \"square\",\n \"ascii\",\n \"ascii-large\"\n ],\n \"default\": \"curved\"\n }\n }\n },\n \"log-word-wrap\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to wrap log template output\",\n \"default\": false\n },\n \"log-synthetic-elided-nodes\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to render elided parts of the graph as synthetic nodes.\",\n \"default\": true\n },\n \"editor\": {\n \"description\": \"Editor to use for commands that involve editing text\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"diff-editor\": {\n \"description\": \"Editor tool to use for editing diffs\",\n \"default\": \":builtin\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"diff-formatter\": {\n \"description\": \"Tool for displaying or generating diffs\",\n \"default\": \":color-words\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"merge-editor\": {\n \"description\": \"Tool to use for resolving three-way merges. Behavior for a given tool name can be configured in merge-tools.TOOL tables\",\n \"default\": \":builtin\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"conflict-marker-style\": {\n \"$ref\": \"#/properties/ui/definitions/conflict-marker-style\"\n },\n \"show-cryptographic-signatures\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Whether the built-in templates should show cryptographic signature information\"\n },\n \"movement\": {\n \"type\": \"object\",\n \"properties\": {\n \"edit\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the next and prev commands should behave as if the --edit flag was passed\",\n \"default\": false\n }\n }\n },\n \"bookmark-list-sort-keys\": {\n \"type\": \"array\",\n \"description\": \"Specifies the sort keys for the bookmarks list. See the `jj bookmark list --help` for the `--sort` option\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"name\",\n \"name-\",\n \"author-name\",\n \"author-name-\",\n \"author-email\",\n \"author-email-\",\n \"author-date\",\n \"author-date-\",\n \"committer-name\",\n \"committer-name-\",\n \"committer-email\",\n \"committer-email-\",\n \"committer-date\",\n \"committer-date-\"\n ]\n }\n },\n \"tag-list-sort-keys\": {\n \"type\": \"array\",\n \"description\": \"Specifies the sort keys for the tags list. See the `jj tag list --help` for the `--sort` option\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"name\",\n \"name-\",\n \"author-name\",\n \"author-name-\",\n \"author-email\",\n \"author-email-\",\n \"author-date\",\n \"author-date-\",\n \"committer-name\",\n \"committer-name-\",\n \"committer-email\",\n \"committer-email-\",\n \"committer-date\",\n \"committer-date-\"\n ]\n }\n }\n }\n },\n \"fsmonitor\": {\n \"type\": \"object\",\n \"description\": \"External filesystem monitor settings, useful for large repos\",\n \"properties\": {\n \"backend\": {\n \"type\": \"string\",\n \"enum\": [\n \"none\",\n \"watchman\"\n ],\n \"default\": \"none\",\n \"description\": \"Whether to use an external filesystem monitor, useful for large repos\"\n },\n \"watchman\": {\n \"type\": \"object\",\n \"properties\": {\n \"register-snapshot-trigger\": {\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Whether to use triggers to monitor for changes in the background.\"\n }\n }\n }\n }\n },\n \"colors\": {\n \"type\": \"object\",\n \"description\": \"Mapping from jj formatter labels to colors\",\n \"definitions\": {\n \"colorNames\": {\n \"enum\": [\n \"default\",\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"bright black\",\n \"bright red\",\n \"bright green\",\n \"bright yellow\",\n \"bright blue\",\n \"bright magenta\",\n \"bright cyan\",\n \"bright white\"\n ]\n },\n \"ansi256Color\": {\n \"type\": \"string\",\n \"pattern\": \"^ansi-color-([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$\"\n },\n \"hexColor\": {\n \"type\": \"string\",\n \"pattern\": \"^#[0-9a-fA-F]{6}$\"\n },\n \"colors\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/colors/definitions/colorNames\"\n },\n {\n \"$ref\": \"#/properties/colors/definitions/ansi256Color\"\n },\n {\n \"$ref\": \"#/properties/colors/definitions/hexColor\"\n }\n ]\n }\n },\n \"additionalProperties\": {\n \"description\": \"A color profile for the given formatter label. Either a bare color name used as the foreground color or a table describing color and formatting\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/colors/definitions/colors\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"fg\": {\n \"$ref\": \"#/properties/colors/definitions/colors\"\n },\n \"bg\": {\n \"$ref\": \"#/properties/colors/definitions/colors\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"dim\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"crossed-out\": {\n \"type\": \"boolean\"\n },\n \"reverse\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"diff\": {\n \"type\": \"object\",\n \"description\": \"Builtin diff formats settings\",\n \"properties\": {\n \"color-words\": {\n \"type\": \"object\",\n \"description\": \"Options for color-words diffs\",\n \"properties\": {\n \"conflict\": {\n \"type\": \"string\",\n \"description\": \"How conflicts are processed and displayed\",\n \"enum\": [\n \"materialize\",\n \"pair\"\n ],\n \"default\": \"materialize\"\n },\n \"max-inline-alternation\": {\n \"type\": \"integer\",\n \"description\": \"Maximum number of removed/added word alternation to inline\",\n \"default\": 3\n },\n \"context\": {\n \"type\": \"integer\",\n \"description\": \"Number of lines of context to show\",\n \"default\": 3\n }\n }\n },\n \"git\": {\n \"type\": \"object\",\n \"description\": \"Options for git diffs\",\n \"properties\": {\n \"context\": {\n \"type\": \"integer\",\n \"description\": \"Number of lines of context to show\",\n \"default\": 3\n },\n \"show-path-prefix\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to show the \'a/\' and \'b/\' path prefixes\",\n \"default\": true\n }\n }\n }\n }\n },\n \"fileset-aliases\": {\n \"type\": \"object\",\n \"description\": \"Custom symbols/function aliases that can be used in fileset expressions\",\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"definition\": {\n \"type\": \"string\"\n },\n \"doc\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"definition\"\n ]\n }\n ]\n }\n },\n \"git\": {\n \"type\": \"object\",\n \"description\": \"Settings for git behavior (when using git backend)\",\n \"properties\": {\n \"abandon-unreachable-commits\": {\n \"type\": \"boolean\",\n \"description\": \"Whether jj should abandon commits that became unreachable in Git.\",\n \"default\": true\n },\n \"fetch\": {\n \"description\": \"The remote(s) from which commits are fetched\",\n \"default\": \"origin\",\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"private-commits\": {\n \"type\": \"string\",\n \"description\": \"Revset of commits to refuse to push to remotes\",\n \"default\": \"none()\"\n },\n \"push\": {\n \"type\": \"string\",\n \"description\": \"The remote to which commits are pushed\",\n \"default\": \"origin\"\n },\n \"record-synthetic-predecessors\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to generate synthetic predecessors for fetched/imported commits\",\n \"default\": true\n },\n \"sign-on-push\": {\n \"type\": \"boolean\",\n \"description\": \"Whether jj should sign commits before pushing\",\n \"default\": false\n },\n \"track-default-bookmark-on-clone\": {\n \"type\": \"boolean\",\n \"description\": \"Whether `jj git clone` creates a local bookmark tracking the default remote bookmark\",\n \"default\": true\n },\n \"write-change-id-header\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the change id should be stored in the Git commit object\",\n \"default\": true\n },\n \"executable-path\": {\n \"type\": \"string\",\n \"description\": \"Path to the git executable\",\n \"default\": \"git\"\n },\n \"colocate\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to colocate the working copy with the git repository\",\n \"default\": true\n }\n }\n },\n \"remotes\": {\n \"type\": \"object\",\n \"description\": \"Settings related to specific remotes\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"auto-track-bookmarks\": {\n \"type\": \"string\",\n \"description\": \"A string pattern describing the bookmarks to automatically track with this remote. It will be applied to any new bookmark, created or fetched. See https://docs.jj-vcs.dev/latest/config/#automatic-tracking-of-bookmarks\",\n \"default\": \"~*\"\n },\n \"auto-track-created-bookmarks\": {\n \"type\": \"string\",\n \"description\": \"A string pattern describing the locally-created bookmarks which should track this remote automatically. It will be applied to new bookmarks created with `jj bookmark create` or `jj bookmark set`. See https://docs.jj-vcs.dev/latest/config/#automatic-tracking-of-bookmarks\",\n \"default\": \"~*\"\n },\n \"fetch-bookmarks\": {\n \"type\": \"string\",\n \"description\": \"A string pattern describing the bookmarks to fetch by default\"\n },\n \"fetch-tags\": {\n \"type\": \"string\",\n \"description\": \"A string pattern describing the tags to fetch by default\"\n }\n }\n }\n },\n \"gerrit\": {\n \"type\": \"object\",\n \"description\": \"Settings for interacting with Gerrit\",\n \"properties\": {\n \"default-remote\": {\n \"type\": \"string\",\n \"description\": \"The Gerrit remote to interact with\"\n },\n \"default-remote-branch\": {\n \"type\": \"string\",\n \"description\": \"The default branch to propose changes for\"\n },\n \"review-url\": {\n \"type\": \"string\",\n \"description\": \"Generate Link trailers with this URL instead of Change-Id trailers in `jj gerrit upload`\"\n }\n }\n },\n \"merge\": {\n \"type\": \"object\",\n \"description\": \"Merge settings\",\n \"properties\": {\n \"hunk-level\": {\n \"type\": \"string\",\n \"description\": \"Granularity of hunks when merging files\",\n \"enum\": [\n \"line\",\n \"word\"\n ],\n \"default\": \"line\"\n },\n \"same-change\": {\n \"type\": \"string\",\n \"description\": \"Whether to resolve conflict that makes the same change at all sides\",\n \"enum\": [\n \"keep\",\n \"accept\"\n ],\n \"default\": \"accept\"\n }\n }\n },\n \"merge-tools\": {\n \"type\": \"object\",\n \"description\": \"Tables of custom options to pass to the given merge tool (selected in ui.merge-editor)\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"program\": {\n \"type\": \"string\"\n },\n \"diff-args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"diff-expected-exit-codes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"description\": \"Array of exit codes that do not indicate tool failure, i.e. [0, 1] for unix diff.\",\n \"default\": [\n 0\n ]\n },\n \"diff-do-chdir\": {\n \"type\": \"boolean\",\n \"description\": \"Invoke the tool in the temporary diff directory. This setting will be removed soon\",\n \"default\": true\n },\n \"diff-invocation-mode\": {\n \"description\": \"Invoke the tool with directories or individual files when generating diffs.\",\n \"enum\": [\n \"dir\",\n \"file-by-file\"\n ],\n \"default\": \"dir\"\n },\n \"edit-args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"edit-invocation-mode\": {\n \"description\": \"Invoke the tool with directories or individual files when editing diffs (e.g. jj diffedit, jj split).\",\n \"enum\": [\n \"dir\",\n \"file-by-file\"\n ],\n \"default\": \"dir\"\n },\n \"merge-args\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"merge-conflict-exit-codes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n },\n \"description\": \"Array of exit codes to indicate that the conflict was only partially resolved. See https://docs.jj-vcs.dev/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor\",\n \"default\": []\n },\n \"merge-tool-edits-conflict-markers\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to populate the output file with conflict markers before starting the merge tool. See https://docs.jj-vcs.dev/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor\",\n \"default\": false\n },\n \"conflict-marker-style\": {\n \"$ref\": \"#/properties/ui/definitions/conflict-marker-style\"\n }\n }\n }\n },\n \"revsets\": {\n \"type\": \"object\",\n \"description\": \"Revset expressions used by various commands\",\n \"properties\": {\n \"arrange\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to open in the TUI when no explicit revset is given for jj arrange\",\n \"default\": \"reachable(@, mutable())\"\n },\n \"fix\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to fix when no explicit revset is given for jj fix\",\n \"default\": \"reachable(@, mutable())\"\n },\n \"log\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to show when no explicit revset is given for jj log and similar commands\",\n \"default\": \"present(@) | ancestors(immutable_heads().., 2) | trunk()\"\n },\n \"short-prefixes\": {\n \"type\": \"string\",\n \"description\": \"Revisions to give shorter change and commit IDs to\",\n \"default\": \"<revsets.log>\"\n },\n \"run\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to run a command on when no explicit revset is given for jj run\",\n \"default\": \"reachable(@, mutable())\"\n },\n \"simplify-parents\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to simplify when no explicit revset is given for jj simplify-parents\",\n \"default\": \"reachable(@, mutable())\"\n },\n \"sign\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to sign when no explicit revset is given for jj sign\",\n \"default\": \"reachable(@, mutable())\"\n },\n \"log-graph-prioritize\": {\n \"type\": \"string\",\n \"description\": \"Set of revisions to prioritize when rendering the graph for jj log\",\n \"default\": \"present(@)\"\n },\n \"bookmark-advance-to\": {\n \"type\": \"string\",\n \"description\": \"Default revision to advance bookmarks to when no explicit revision is given to jj advance `--to`\",\n \"default\": \"@\"\n },\n \"bookmark-advance-from\": {\n \"type\": \"string\",\n \"description\": \"Default set of revisions to advance bookmarks from for jj advance (has access to `to`, the advance destination)\",\n \"default\": \"heads(::to & bookmarks())\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"revset-aliases\": {\n \"type\": \"object\",\n \"description\": \"Custom symbols/function aliases that can be used in revset expressions\",\n \"properties\": {\n \"immutable_heads()\": {\n \"type\": \"string\",\n \"description\": \"Revisions to consider immutable. Ancestors of these are also considered immutable. The root commit is always considered immutable.\",\n \"default\": \"trunk() | tags() | untracked_remote_bookmarks()\"\n }\n },\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"definition\": {\n \"type\": \"string\"\n },\n \"doc\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"definition\"\n ]\n }\n ]\n }\n },\n \"template-aliases\": {\n \"type\": \"object\",\n \"description\": \"Custom symbols/function aliases that can be used in templates\",\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"definition\": {\n \"type\": \"string\"\n },\n \"doc\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"definition\"\n ]\n }\n ]\n }\n },\n \"aliases\": {\n \"type\": \"object\",\n \"description\": \"Custom subcommand aliases to be supported by the jj command\",\n \"additionalProperties\": {\n \"oneOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"definition\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"doc\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"definition\"\n ]\n }\n ]\n }\n },\n \"run\": {\n \"type\": \"object\",\n \"description\": \"Settings for the `jj run` command, which runs a shell command across a set of revisions.\",\n \"properties\": {\n \"jobs\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Maximum number of working copies (and parallel jobs) `jj run` uses. Defaults to 1. Overridden by `--jobs`.\"\n }\n }\n },\n \"snapshot\": {\n \"type\": \"object\",\n \"description\": \"Parameters governing automatic capture of files into the working copy commit\",\n \"properties\": {\n \"auto-track\": {\n \"type\": \"string\",\n \"description\": \"Fileset pattern describing what new files to automatically track on snapshotting. By default all new files are tracked.\",\n \"default\": \"all()\"\n },\n \"auto-update-stale\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to automatically update the working copy if it is stale. See https://docs.jj-vcs.dev/latest/working-copy/#stale-working-copy\",\n \"default\": false\n },\n \"max-new-file-size\": {\n \"type\": [\n \"integer\",\n \"string\"\n ],\n \"description\": \"New files with a size in bytes above this threshold are not snapshotted, unless the threshold is 0\",\n \"default\": \"1MiB\"\n }\n }\n },\n \"experimental-advance-branches\": {\n \"type\": \"object\",\n \"description\": \"Settings controlling the \'advance-branches\' feature which moves bookmarks forward when new commits are created.\",\n \"properties\": {\n \"enabled-branches\": {\n \"type\": \"array\",\n \"description\": \"Patterns used to identify bookmarks which may be advanced.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"disabled-branches\": {\n \"type\": \"array\",\n \"description\": \"Patterns used to identify bookmarks which are not advanced. Takes precedence over \'enabled-branches\'.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"signing\": {\n \"type\": \"object\",\n \"description\": \"Settings for verifying and creating cryptographic commit signatures\",\n \"properties\": {\n \"backend\": {\n \"type\": \"string\",\n \"enum\": [\n \"gpg\",\n \"gpgsm\",\n \"none\",\n \"ssh\"\n ],\n \"description\": \"The backend to use for signing commits. The string `none` disables signing.\",\n \"default\": \"none\"\n },\n \"key\": {\n \"type\": \"string\",\n \"description\": \"The key the configured signing backend will use to to sign commits. Overridden by `jj sign` parameter or by the global `--sign-with` option\"\n },\n \"behavior\": {\n \"type\": \"string\",\n \"enum\": [\n \"drop\",\n \"keep\",\n \"own\",\n \"force\"\n ],\n \"description\": \"Which commits to sign by default. Values: drop (never sign), keep (preserve existing signatures), own (sign own commits), force (sign all commits)\"\n },\n \"backends\": {\n \"type\": \"object\",\n \"description\": \"Tables of options to pass to specific signing backends\",\n \"properties\": {\n \"gpg\": {\n \"type\": \"object\",\n \"properties\": {\n \"program\": {\n \"type\": \"string\",\n \"description\": \"Path to the gpg program to be called\",\n \"default\": \"gpg\"\n },\n \"allow-expired-keys\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to consider signatures generated with an expired key as valid\",\n \"default\": false\n }\n }\n },\n \"gpgsm\": {\n \"type\": \"object\",\n \"properties\": {\n \"program\": {\n \"type\": \"string\",\n \"description\": \"Path to the gpgsm program to be called\",\n \"default\": \"gpgsm\"\n },\n \"allow-expired-keys\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to consider signatures generated with an expired key as valid\",\n \"default\": false\n }\n }\n },\n \"ssh\": {\n \"type\": \"object\",\n \"properties\": {\n \"program\": {\n \"type\": \"string\",\n \"description\": \"Path to the ssh-keygen program to be called\",\n \"default\": \"ssh-keygen\"\n },\n \"allowed-signers\": {\n \"type\": \"string\",\n \"description\": \"Path to an allowed signers file used for signature verification\"\n },\n \"revocation-list\": {\n \"type\": \"string\",\n \"description\": \"Path to a revocation list file used for revoking public keys\"\n }\n }\n }\n },\n \"additionalProperties\": true\n }\n }\n },\n \"fix\": {\n \"type\": \"object\",\n \"description\": \"Settings for jj fix\",\n \"properties\": {\n \"tools\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"Settings for how specific filesets are affected by a tool\",\n \"properties\": {\n \"command\": {\n \"description\": \"Arguments used to execute this tool\",\n \"oneOf\": [\n {\n \"$ref\": \"#/properties/ui/definitions/command\"\n },\n {\n \"$ref\": \"#/properties/ui/definitions/command-env\"\n }\n ]\n },\n \"patterns\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Filesets that will be affected by this tool\"\n },\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Disables this tool if set to false\",\n \"default\": true\n },\n \"line-range-arg\": {\n \"type\": \"string\",\n \"description\": \"Argument template for changed line ranges (e.g. \'--lines=$first-$last\')\"\n },\n \"run-tool-if-zero-line-ranges\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to run the tool if there are zero line ranges to format.\",\n \"default\": false\n }\n }\n },\n \"description\": \"Settings for tools run by jj fix\"\n }\n }\n },\n \"split\": {\n \"type\": \"object\",\n \"description\": \"Settings for jj split\",\n \"properties\": {\n \"legacy-bookmark-behavior\": {\n \"type\": \"boolean\",\n \"description\": \"If true, bookmarks will move to the second commit instead of the first.\",\n \"default\": true\n }\n }\n },\n \"hints\": {\n \"type\": \"object\",\n \"description\": \"Various hints in jj\'s UI that can be disabled\",\n \"additionalProperties\": {\n \"type\": \"boolean\"\n }\n },\n \"templates\": {\n \"type\": \"object\",\n \"description\": \"Definitions for the templates that various jj commands use\",\n \"properties\": {\n \"arrange\": {\n \"type\": \"string\",\n \"description\": \"`jj arrange``\'s template for commits in the main view\"\n },\n \"bookmark_list\": {\n \"type\": \"string\",\n \"description\": \"`jj bookmark list`\'s output\"\n },\n \"commit_summary\": {\n \"type\": \"string\",\n \"description\": \"The short commit summary used by many commands\"\n },\n \"commit_trailers\": {\n \"type\": \"string\",\n \"description\": \"Trailers that will be appended to a commit\'s description\"\n },\n \"file_annotate\": {\n \"type\": \"string\",\n \"description\": \"`jj file annotate`\'s output\"\n },\n \"config_list\": {\n \"type\": \"string\",\n \"description\": \"`jj config list`\'s output\"\n },\n \"draft_commit_description\": {\n \"type\": \"string\",\n \"description\": \"The draft commit description opened in an editor\"\n },\n \"evolog\": {\n \"type\": \"string\",\n \"description\": \"`jj evolog`\'s output\"\n },\n \"file_list\": {\n \"type\": \"string\",\n \"description\": \"`jj file list`\'s output\"\n },\n \"file_show\": {\n \"type\": \"string\",\n \"description\": \"`jj file show`\'s output\"\n },\n \"git_push_bookmark\": {\n \"type\": \"string\",\n \"description\": \"Bookmark name to be assigned when pushing a change to Git remote\"\n },\n \"log\": {\n \"type\": \"string\",\n \"description\": \"`jj log`\'s output\"\n },\n \"op_log\": {\n \"type\": \"string\",\n \"description\": \"`jj op log`\'s output\"\n },\n \"op_show\": {\n \"type\": \"string\",\n \"description\": \"`jj op show`\'s output\"\n },\n \"op_summary\": {\n \"type\": \"string\",\n \"description\": \"The operation summary used by many commands\"\n },\n \"show\": {\n \"type\": \"string\",\n \"description\": \"`jj show`\'s output\"\n },\n \"revert_description\": {\n \"type\": \"string\",\n \"description\": \"The description of commits reverted by `jj revert`\"\n },\n \"tag_list\": {\n \"type\": \"string\",\n \"description\": \"`jj tag list`\'s output\"\n },\n \"workspace_list\": {\n \"type\": \"string\",\n \"description\": \"`jj workspace list`\'s output\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"working-copy\": {\n \"type\": \"object\",\n \"description\": \"Working copy settings\",\n \"properties\": {\n \"eol-conversion\": {\n \"type\": \"string\",\n \"description\": \"Configuring auto-converting CRLF line endings into LF when you add a file to the backend, and vice versa when it checks out code onto your filesystem.\",\n \"enum\": [\n \"input\",\n \"input-output\",\n \"none\"\n ],\n \"default\": \"none\"\n },\n \"exec-bit-change\": {\n \"type\": \"string\",\n \"description\": \"Whether to respect changes to executable bits on Unix. This is unused on Windows.\",\n \"enum\": [\n \"respect\",\n \"ignore\",\n \"auto\"\n ],\n \"default\": \"auto\"\n }\n }\n },\n \"--when\": {\n \"type\": \"object\",\n \"description\": \"Conditions restricting the application of the configuration\",\n \"properties\": {\n \"repositories\": {\n \"type\": \"array\",\n \"description\": \"List of paths to match the repository path prefix\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"hostnames\": {\n \"type\": \"array\",\n \"description\": \"List of hostnames to match the hostname\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"workspaces\": {\n \"type\": \"array\",\n \"description\": \"List of paths to match the workspace path prefix\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"commands\": {\n \"type\": \"array\",\n \"description\": \"List of subcommands to match\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"platforms\": {\n \"type\": \"array\",\n \"description\": \"List of platforms to match\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"aix\",\n \"android\",\n \"apple\",\n \"dragonfly\",\n \"emscripten\",\n \"espidf\",\n \"fortanix\",\n \"freebsd\",\n \"fuchsia\",\n \"haiku\",\n \"hermit\",\n \"horizon\",\n \"hurd\",\n \"illumos\",\n \"ios\",\n \"itron\",\n \"l4re\",\n \"linux\",\n \"macos\",\n \"netbsd\",\n \"nto\",\n \"openbsd\",\n \"redox\",\n \"solaris\",\n \"solid_asp3\",\n \"tvos\",\n \"uefi\",\n \"unix\",\n \"visionos\",\n \"vita\",\n \"vxworks\",\n \"wasi\",\n \"wasm\",\n \"watchos\",\n \"windows\",\n \"xous\"\n ]\n }\n },\n \"environments\": {\n \"type\": \"array\",\n \"description\": \"List of environment conditions, any of which must match (NAME=VALUE) or be present (NAME).\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"--scope\": {\n \"type\": \"array\",\n \"description\": \"Scoped tables for conditional configuration\",\n \"items\": {\n \"$comment\": \"https://json-schema.org/understanding-json-schema/structuring#recursion\",\n \"$ref\": \"#\"\n }\n }\n }\n}\n";