id = "fossil"
name = "Fossil"
homepage = "https://fossil-scm.org/"
description = "A distributed version control system with an integrated web interface."
executables = ["fossil"]
[dotfiles]
paths = ["~/.fossil", "[configHome]/fossil.db"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Fossil"
description = "Clone a Fossil repository or commit changes in the current check-out. Only a few options of fossil clone and fossil commit are covered; sync, branch and server commands are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["clone"]
label = "Clone a repository"
description = "Make a local copy of a repository and, by default, open a check-out."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://fossil-scm.org/home/help/clone"
revision = "Fossil 2.29"
evidence = """
Usage: fossil clone ?OPTIONS? URI ?FILENAME?
-A|--admin-user USERNAME
Make USERNAME the administrator
--no-open
Clone only. Do not open a check-out.
--private
Also clone private branches
-u|--unversioned
Also sync unversioned content
-v|--verbose
Show more statistics in output
--workdir DIR
Also open a check-out in DIR
"""
[[commands.subcommand.field]]
id = "uri"
label = "Repository URI"
description = "http(s)://, ssh:// or a local path to a .fossil file."
type = "string"
position = 0
min = 1
sources = ["help"]
[[commands.subcommand.field]]
id = "filename"
label = "Local repository file"
description = "Defaults to a name taken from the URI."
type = "path"
path = { kind = "file", role = "output" }
position = 1
sources = ["help"]
[[commands.subcommand.field]]
id = "workdir"
label = "Open check-out in"
type = "path"
path = { kind = "directory", role = "output" }
option = ["--workdir"]
sources = ["help"]
[[commands.subcommand.field]]
id = "no_open"
label = "Clone only, no check-out"
type = "boolean"
option = ["--no-open"]
sources = ["help"]
[[commands.subcommand.field]]
id = "admin_user"
label = "Admin user"
type = "string"
option = ["--admin-user", "-A"]
sources = ["help"]
[[commands.subcommand.field]]
id = "private"
label = "Include private branches"
type = "boolean"
option = ["--private"]
sources = ["help"]
[[commands.subcommand.field]]
id = "unversioned"
label = "Include unversioned content"
type = "boolean"
option = ["--unversioned", "-u"]
sources = ["help"]
[[commands.subcommand.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["help"]
[[commands.subcommand.task]]
id = "clone"
label = "Clone"
fields = ["uri", "filename"]
required = ["uri"]
[[commands.subcommand.task]]
id = "clone_workdir"
label = "Clone and open in a directory"
fields = ["uri", "filename", "workdir"]
required = ["uri", "workdir"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["uri", "filename", "workdir"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["no_open", "admin_user", "private", "unversioned", "verbose"]
[[commands.subcommand]]
path = ["commit"]
label = "Commit changes"
description = "Create a new check-in from the changes in the current check-out."
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://fossil-scm.org/home/help/commit"
revision = "Fossil 2.29"
evidence = """
Usage: fossil commit ?OPTIONS? ?FILE...?
--allow-empty
Allow a commit with no changes
--branch NEW-BRANCH-NAME
Check in to this new branch
-m|--comment COMMENT-TEXT
Use COMMENT-TEXT as the check-in comment
-M|--message-file FILE
Read the check-in comment from FILE
-n|--dry-run
Do not actually create a new check-in. Just
--private
The --private option creates a private check-in that is never synced.
--tag option applies the symbolic tag name to the check-in.
"""
[[commands.subcommand.field]]
id = "comment"
label = "Check-in comment"
type = "string"
option = ["--comment", "-m"]
sources = ["help"]
[[commands.subcommand.field]]
id = "message_file"
label = "Comment from file"
type = "path"
path = { kind = "file", role = "input" }
option = ["--message-file", "-M"]
sources = ["help"]
[[commands.subcommand.field]]
id = "branch"
label = "New branch"
description = "Place the check-in on a newly created branch with this name."
type = "string"
option = ["--branch"]
sources = ["help"]
[[commands.subcommand.field]]
id = "dry_run"
label = "Dry run"
type = "boolean"
option = ["--dry-run", "-n"]
sources = ["help"]
[[commands.subcommand.field]]
id = "allow_empty"
label = "Allow empty commit"
type = "boolean"
option = ["--allow-empty"]
sources = ["help"]
[[commands.subcommand.field]]
id = "private"
label = "Private check-in"
description = "Never synced."
type = "boolean"
option = ["--private"]
sources = ["help"]
[[commands.subcommand.field]]
id = "files"
label = "Files"
description = "Commit only these files; empty commits all changes."
type = "path"
path = { kind = "file", role = "input" }
position = 0
multiple = true
sources = ["help"]
[[commands.subcommand.task]]
id = "commit_all"
label = "Commit all changes"
fields = ["comment"]
required = ["comment"]
[[commands.subcommand.task]]
id = "preview"
label = "Dry-run commit"
fields = ["comment", "dry_run"]
required = ["comment"]
set = { dry_run = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["comment", "files", "dry_run"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["message_file", "branch", "allow_empty", "private"]