mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-13 07:32:20 +00:00
d0a29a831d
When using `ui.color = "debug"`, changes in the output style additionally include delimiters << and >>, as well as all active labels at this point separated by ::. The output is otherwise unformatted and the delimiters and labels inherit the style of the content they apply to.
487 lines
19 KiB
JSON
487 lines
19 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"title": "Jujutsu config",
|
|
"type": "object",
|
|
"description": "User configuration for Jujutsu VCS. See https://github.com/martinvonz/jj/blob/main/docs/config.md for details",
|
|
"properties": {
|
|
"user": {
|
|
"type": "object",
|
|
"description": "Settings about the user",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Full name of the user, used in commits"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"description": "User's email address, used in commits",
|
|
"format": "email"
|
|
}
|
|
}
|
|
},
|
|
"operation": {
|
|
"type": "object",
|
|
"description": "Metadata to be attached to jj operations (shown in jj op log)",
|
|
"properties": {
|
|
"hostname": {
|
|
"type": "string",
|
|
"format": "hostname"
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ui": {
|
|
"type": "object",
|
|
"description": "UI settings",
|
|
"properties": {
|
|
"allow-init-native": {
|
|
"type": "boolean",
|
|
"description": "Whether to allow initializing a repo with the native backend",
|
|
"default": false
|
|
},
|
|
"allow-filesets": {
|
|
"type": "boolean",
|
|
"description": "Whether to parse path arguments as fileset expressions",
|
|
"default": false
|
|
},
|
|
"always-allow-large-revsets": {
|
|
"type": "boolean",
|
|
"description": "Whether to allow large revsets to be used in all commands without the `all:` modifier",
|
|
"default": false
|
|
},
|
|
"default-command": {
|
|
"type": "string",
|
|
"description": "Default command to run when no explicit command is given",
|
|
"default": "log",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"default-description": {
|
|
"type": "string",
|
|
"description": "Default description to use when describing changes with an empty description",
|
|
"default": ""
|
|
},
|
|
"color": {
|
|
"description": "Whether to colorize command output",
|
|
"enum": [
|
|
"always",
|
|
"never",
|
|
"debug",
|
|
"auto"
|
|
],
|
|
"default": "auto"
|
|
},
|
|
"paginate": {
|
|
"type": "string",
|
|
"description": "Whether or not to use a pager",
|
|
"enum": [
|
|
"never",
|
|
"auto"
|
|
],
|
|
"default": "auto"
|
|
},
|
|
"pager": {
|
|
"type": "string",
|
|
"description": "Pager to use for displaying command output",
|
|
"default": "less -FRX"
|
|
},
|
|
"diff": {
|
|
"type": "object",
|
|
"description": "Options for how diffs are displayed",
|
|
"properties": {
|
|
"format": {
|
|
"description": "The diff format to use",
|
|
"enum": [
|
|
"color-words",
|
|
"git",
|
|
"summary"
|
|
],
|
|
"default": "color-words"
|
|
},
|
|
"tool": {
|
|
"type": "string",
|
|
"description": "External tool for generating diffs"
|
|
}
|
|
}
|
|
},
|
|
"diff-instructions": {
|
|
"type": "boolean",
|
|
"description": "Whether to generate the JJ-INSTRUCTIONS file as part of editing a diff",
|
|
"default": true
|
|
},
|
|
"graph": {
|
|
"type": "object",
|
|
"description": "Options for rendering revision graphs from jj log etc",
|
|
"properties": {
|
|
"style": {
|
|
"description": "Style of connectors/markings used to render the graph. See https://github.com/martinvonz/jj/blob/main/docs/config.md#graph-style",
|
|
"enum": [
|
|
"curved",
|
|
"square",
|
|
"ascii",
|
|
"ascii-large"
|
|
],
|
|
"default": "curved"
|
|
}
|
|
}
|
|
},
|
|
"log-word-wrap": {
|
|
"type": "boolean",
|
|
"description": "Whether to wrap log template output",
|
|
"default": false
|
|
},
|
|
"log-synthetic-elided-nodes": {
|
|
"type": "boolean",
|
|
"description": "Whether to render elided parts of the graph as synthetic nodes.",
|
|
"default": true
|
|
},
|
|
"editor": {
|
|
"type": "string",
|
|
"description": "Editor to use for commands that involve editing text"
|
|
},
|
|
"diff-editor": {
|
|
"type": "string",
|
|
"description": "Editor tool to use for editing diffs",
|
|
"default": "meld"
|
|
},
|
|
"merge-editor": {
|
|
"type": "string",
|
|
"description": "Tool to use for resolving three-way merges. Behavior for a given tool name can be configured in merge-tools.TOOL tables"
|
|
}
|
|
}
|
|
},
|
|
"core": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fsmonitor": {
|
|
"type": "string",
|
|
"enum": ["none", "watchman"],
|
|
"description": "Whether to use an external filesystem monitor, useful for large repos"
|
|
}
|
|
}
|
|
},
|
|
"colors": {
|
|
"type": "object",
|
|
"description": "Mapping from jj formatter labels to colors",
|
|
"definitions": {
|
|
"colorNames": {
|
|
"enum": [
|
|
"default",
|
|
"black",
|
|
"red",
|
|
"green",
|
|
"yellow",
|
|
"blue",
|
|
"magenta",
|
|
"cyan",
|
|
"white",
|
|
"bright black",
|
|
"bright red",
|
|
"bright green",
|
|
"bright yellow",
|
|
"bright blue",
|
|
"bright magenta",
|
|
"bright cyan",
|
|
"bright white"
|
|
]
|
|
},
|
|
"hexColor": {
|
|
"type": "string",
|
|
"pattern": "^#[0-9a-fA-F]{6}$"
|
|
},
|
|
"colors": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/properties/colors/definitions/colorNames"
|
|
},
|
|
{
|
|
"$ref": "#/properties/colors/definitions/hexColor"
|
|
}
|
|
]
|
|
},
|
|
"basicFormatterLabels": {
|
|
"enum": [
|
|
"description",
|
|
"change_id",
|
|
"commit_id",
|
|
"author",
|
|
"committer",
|
|
"working_copies",
|
|
"current_working_copy",
|
|
"branches",
|
|
"tags",
|
|
"git_refs",
|
|
"is_git_head",
|
|
"divergent",
|
|
"hidden",
|
|
"conflict",
|
|
"root"
|
|
]
|
|
}
|
|
},
|
|
"propertyNames": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/properties/colors/definitions/basicFormatterLabels"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"additionalProperties": {
|
|
"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",
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/properties/colors/definitions/colors"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"fg": {
|
|
"$ref": "#/properties/colors/definitions/colors"
|
|
},
|
|
"bg": {
|
|
"$ref": "#/properties/colors/definitions/colors"
|
|
},
|
|
"bold": {
|
|
"type": "boolean"
|
|
},
|
|
"underline": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"git": {
|
|
"type": "object",
|
|
"description": "Settings for git behavior (when using git backend)",
|
|
"properties": {
|
|
"auto-local-branch": {
|
|
"type": "boolean",
|
|
"description": "Whether jj creates a local branch with the same name when it imports a remote-tracking branch from git. See https://github.com/martinvonz/jj/blob/main/docs/config.md#automatic-local-branch-creation",
|
|
"default": false
|
|
},
|
|
"abandon-unreachable-commits": {
|
|
"type": "boolean",
|
|
"description": "Whether jj should abandon commits that became unreachable in Git.",
|
|
"default": true
|
|
},
|
|
"push-branch-prefix": {
|
|
"type": "string",
|
|
"description": "Prefix used when pushing a change ID as a new branch",
|
|
"default": "push-"
|
|
},
|
|
"fetch": {
|
|
"description": "The remote(s) from which commits are fetched",
|
|
"default": "origin",
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"push": {
|
|
"type": "string",
|
|
"description": "The remote to which commits are pushed",
|
|
"default": "origin"
|
|
}
|
|
}
|
|
},
|
|
"merge-tools": {
|
|
"type": "object",
|
|
"description": "Tables of custom options to pass to the given merge tool (selected in ui.merge-editor)",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string"
|
|
},
|
|
"diff-args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"edit-args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"merge-args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"merge-tool-edits-conflict-markers": {
|
|
"type": "boolean",
|
|
"description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://github.com/martinvonz/jj/blob/main/docs/config.md#editing-conflict-markers-with-a-tool-or-a-text-editor",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"revsets": {
|
|
"type": "object",
|
|
"description": "Revset expressions used by various commands",
|
|
"properties": {
|
|
"log": {
|
|
"type": "string",
|
|
"description": "Default set of revisions to show when no explicit revset is given for jj log and similar commands",
|
|
"default": "@ | ancestors(immutable_heads().., 2) | trunk()"
|
|
},
|
|
"short-prefixes": {
|
|
"type": "string",
|
|
"description": "Revisions to give shorter change and commit IDs to",
|
|
"default": "<revsets.log>"
|
|
}
|
|
},
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"revset-aliases": {
|
|
"type": "object",
|
|
"description": "Custom symbols/function aliases that can used in revset expressions",
|
|
"properties": {
|
|
"immutable_heads()": {
|
|
"type": "string",
|
|
"description": "Revisions to consider immutable. Ancestors of these are also considered immutable. The root commit is always considered immutable.",
|
|
"default": "trunk() | tags()"
|
|
}
|
|
},
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"template-aliases": {
|
|
"type": "object",
|
|
"description": "Custom symbols/function aliases that can used in templates",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"aliases": {
|
|
"type": "object",
|
|
"description": "Custom subcommand aliases to be supported by the jj command",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"snapshot": {
|
|
"type": "object",
|
|
"description": "Parameters governing automatic capture of files into the working copy commit",
|
|
"properties": {
|
|
"max-new-file-size": {
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"description": "New files with a size in bytes above this threshold are not snapshotted, unless the threshold is 0",
|
|
"default": "1MiB"
|
|
}
|
|
}
|
|
},
|
|
"experimental-advance-branches": {
|
|
"type": "object",
|
|
"description": "Settings controlling the 'advance-branches' feature which moves branches forward when new commits are created.",
|
|
"properties": {
|
|
"enabled-branches": {
|
|
"type": "array",
|
|
"description": "Patterns used to identify branches which may be advanced.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"disabled-branches": {
|
|
"type": "array",
|
|
"description": "Patterns used to identify branches which are not advanced. Takes precedence over 'enabled-branches'.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"signing": {
|
|
"type": "object",
|
|
"description": "Settings for verifying and creating cryptographic commit signatures",
|
|
"properties": {
|
|
"backend": {
|
|
"type": "string",
|
|
"enum": ["gpg", "ssh"],
|
|
"description": "The backend to use for signing commits"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"sign-all": {
|
|
"type": "boolean",
|
|
"description": "Whether to sign all commits by default. Overridden by global `--no-sign` option",
|
|
"default": false
|
|
},
|
|
"backends": {
|
|
"type": "object",
|
|
"description": "Tables of options to pass to specific signing backends",
|
|
"properties": {
|
|
"gpg": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"description": "Path to the gpg program to be called",
|
|
"default": "gpg"
|
|
},
|
|
"allow-expired-keys": {
|
|
"type": "boolean",
|
|
"description": "Whether to consider signatures generated with an expired key as invalid",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"ssh": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"description": "Path to the ssh-keygen program to be called",
|
|
"default": "ssh-keygen"
|
|
},
|
|
"allowed-signers": {
|
|
"type": "boolean",
|
|
"description": "Path to an allowed signers file used for signature verification",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|