{
  "id": "mercurial",
  "name": "Mercurial",
  "homepage": "https://www.mercurial-scm.org",
  "description": "Mercurial is a free, distributed source control management tool.",
  "icon": "SimpleIcons:mercurial",
  "executables": [
    "hg"
  ],
  "dotfiles": {
    "paths": [
      "~/.hgrc",
      "~/.config/hg/hgrc",
      "~/Mercurial.ini"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Mercurial",
    "description": "The everyday hg jobs: clone, status, commit and log. Other commands and global options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "clone"
        ],
        "label": "Clone a repository",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/unstable/mercurial-common/hg.1.en.html",
            "evidence": "hg clone [OPTION]... SOURCE [DEST]\n-U, --noupdate\n-u,--updaterev <REV>\n-r,--rev <REV[+]>\n-b,--branch <BRANCH[+]>\n--pull\n--stream\n"
          }
        ],
        "field": [
          {
            "id": "source",
            "label": "Source",
            "type": "string",
            "position": 0,
            "sources": [
              "man"
            ]
          },
          {
            "id": "dest",
            "label": "Destination",
            "type": "path",
            "position": 1,
            "path": {
              "kind": "directory",
              "role": "output"
            },
            "sources": [
              "man"
            ]
          },
          {
            "id": "noupdate",
            "label": "Bare clone (no working directory)",
            "type": "boolean",
            "option": [
              "--noupdate",
              "-U"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "updaterev",
            "label": "Revision to check out",
            "type": "string",
            "option": [
              "--updaterev",
              "-u"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "rev",
            "label": "Only up to revision",
            "type": "string",
            "option": [
              "--rev",
              "-r"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "branch",
            "label": "Only branch",
            "type": "string",
            "option": [
              "--branch",
              "-b"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "stream",
            "label": "Stream clone",
            "type": "boolean",
            "option": [
              "--stream"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "clone",
            "label": "Clone",
            "fields": [
              "source",
              "dest"
            ],
            "required": [
              "source"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "source",
              "dest",
              "noupdate"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "updaterev",
              "rev",
              "branch",
              "stream"
            ]
          }
        ]
      },
      {
        "path": [
          "status"
        ],
        "label": "Show changed files",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/unstable/mercurial-common/hg.1.en.html",
            "evidence": "hg status [OPTION]... [FILE]...\n-A, --all\n-m, --modified\n-a, --added\n-r, --removed\n-d, --deleted\n-u, --unknown\n-n, --no-status\n--rev <REV[+]>\n"
          }
        ],
        "field": [
          {
            "id": "files",
            "label": "Files",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "man"
            ]
          },
          {
            "id": "all",
            "label": "Show all files",
            "type": "boolean",
            "option": [
              "--all",
              "-A"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "modified",
            "label": "Only modified",
            "type": "boolean",
            "option": [
              "--modified",
              "-m"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "added",
            "label": "Only added",
            "type": "boolean",
            "option": [
              "--added",
              "-a"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "removed",
            "label": "Only removed",
            "type": "boolean",
            "option": [
              "--removed",
              "-r"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "deleted",
            "label": "Only deleted",
            "type": "boolean",
            "option": [
              "--deleted",
              "-d"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "unknown",
            "label": "Only unknown",
            "type": "boolean",
            "option": [
              "--unknown",
              "-u"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "no_status",
            "label": "Hide status prefix",
            "type": "boolean",
            "option": [
              "--no-status",
              "-n"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "rev",
            "label": "Compare to revision",
            "type": "string",
            "option": [
              "--rev"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "status",
            "label": "Working directory status",
            "fields": [
              "files"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "files",
              "all",
              "modified",
              "added",
              "removed",
              "deleted",
              "unknown"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_status",
              "rev"
            ]
          }
        ]
      },
      {
        "path": [
          "commit"
        ],
        "label": "Commit changes",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/unstable/mercurial-common/hg.1.en.html",
            "evidence": "hg commit [OPTION]... [FILE]...\n-A, --addremove\n--close-branch\n--amend\n-m,--message <TEXT>\n-u,--user <USER>\n-d,--date <DATE>\n-I,--include <PATTERN[+]>\n-X,--exclude <PATTERN[+]>\n-i, --interactive\n"
          }
        ],
        "field": [
          {
            "id": "files",
            "label": "Files",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "man"
            ]
          },
          {
            "id": "message",
            "label": "Commit message",
            "type": "string",
            "option": [
              "--message",
              "-m"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "addremove",
            "label": "Add new and remove missing files",
            "type": "boolean",
            "option": [
              "--addremove",
              "-A"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "amend",
            "label": "Amend the previous commit",
            "type": "boolean",
            "option": [
              "--amend"
            ],
            "effect": "overwrite",
            "sources": [
              "man"
            ]
          },
          {
            "id": "close_branch",
            "label": "Close the branch",
            "type": "boolean",
            "option": [
              "--close-branch"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "user",
            "label": "Author",
            "type": "string",
            "option": [
              "--user",
              "-u"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "date",
            "label": "Date",
            "type": "string",
            "option": [
              "--date",
              "-d"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "include",
            "label": "Include pattern",
            "type": "string",
            "option": [
              "--include",
              "-I"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "exclude",
            "label": "Exclude pattern",
            "type": "string",
            "option": [
              "--exclude",
              "-X"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "interactive",
            "label": "Interactive",
            "type": "boolean",
            "option": [
              "--interactive",
              "-i"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "commit",
            "label": "Commit all changes",
            "fields": [
              "message",
              "addremove"
            ],
            "required": [
              "message"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "message",
              "files",
              "addremove",
              "interactive"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "amend",
              "close_branch",
              "user",
              "date",
              "include",
              "exclude"
            ]
          }
        ]
      },
      {
        "path": [
          "log"
        ],
        "label": "Show history",
        "source": [
          {
            "id": "man",
            "kind": "manual",
            "url": "https://manpages.debian.org/unstable/mercurial-common/hg.1.en.html",
            "evidence": "hg log [OPTION]... [FILE]\n-f, --follow\n-r,--rev <REV[+]>\n-k,--keyword <TEXT[+]>\n-u,--user <USER[+]>\n-d,--date <DATE>\n-p, --patch\n-l,--limit <NUM>\n-M,\n--no-merges\n--stat\n-G, --graph\n-T,--template <TEMPLATE>\n"
          }
        ],
        "field": [
          {
            "id": "file",
            "label": "File",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "man"
            ]
          },
          {
            "id": "rev",
            "label": "Revision or range",
            "type": "string",
            "option": [
              "--rev",
              "-r"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "keyword",
            "label": "Keyword in commit",
            "type": "string",
            "option": [
              "--keyword",
              "-k"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "user",
            "label": "Author",
            "type": "string",
            "option": [
              "--user",
              "-u"
            ],
            "multiple": true,
            "sources": [
              "man"
            ]
          },
          {
            "id": "date",
            "label": "Date range",
            "type": "string",
            "option": [
              "--date",
              "-d"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "limit",
            "label": "Max entries",
            "type": "integer",
            "option": [
              "--limit",
              "-l"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "patch",
            "label": "Show patch",
            "type": "boolean",
            "option": [
              "--patch",
              "-p"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "stat",
            "label": "Show diffstat",
            "type": "boolean",
            "option": [
              "--stat"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "graph",
            "label": "Show graph",
            "type": "boolean",
            "option": [
              "--graph",
              "-G"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "follow",
            "label": "Follow file renames",
            "type": "boolean",
            "option": [
              "--follow",
              "-f"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "no_merges",
            "label": "Hide merges",
            "type": "boolean",
            "option": [
              "--no-merges",
              "-M"
            ],
            "sources": [
              "man"
            ]
          },
          {
            "id": "template",
            "label": "Output template",
            "type": "string",
            "option": [
              "--template",
              "-T"
            ],
            "sources": [
              "man"
            ]
          }
        ],
        "task": [
          {
            "id": "recent",
            "label": "Recent history",
            "fields": [
              "limit",
              "graph"
            ],
            "required": [
              "limit"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "file",
              "rev",
              "limit",
              "patch",
              "graph"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "keyword",
              "user",
              "date",
              "stat",
              "follow",
              "no_merges",
              "template"
            ]
          }
        ]
      }
    ]
  }
}
