{
  "description": "Common Jujutsu jobs: log, new change, describe, git clone and git push. Pick a subcommand.",
  "name": "jj",
  "subcommands": [
    {
      "name": "log",
      "description": "Show the graph of revisions. Template and diff-tool options are left out.",
      "options": [
        {
          "names": [
            "--revision",
            "-r"
          ],
          "description": "Revisions (revset)",
          "args": {
            "name": "revision",
            "isOptional": false
          }
        },
        {
          "names": [
            "--limit",
            "-n"
          ],
          "description": "Limit",
          "args": {
            "name": "limit",
            "isOptional": false
          }
        },
        {
          "names": [
            "--reversed"
          ],
          "description": "Oldest first"
        },
        {
          "names": [
            "--no-graph",
            "-G"
          ],
          "description": "Flat list (no graph)"
        },
        {
          "names": [
            "--patch",
            "-p"
          ],
          "description": "Show patch"
        },
        {
          "names": [
            "--summary",
            "-s"
          ],
          "description": "Summary of changed paths"
        },
        {
          "names": [
            "--stat"
          ],
          "description": "Change histogram"
        }
      ],
      "args": [
        {
          "name": "filesets",
          "isOptional": true,
          "isVariadic": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "new",
      "description": "Create a new, empty change and edit it by default.",
      "options": [
        {
          "names": [
            "--message",
            "-m"
          ],
          "description": "Description",
          "args": {
            "name": "message",
            "isOptional": false
          }
        },
        {
          "names": [
            "--no-edit"
          ],
          "description": "Do not edit the new change"
        },
        {
          "names": [
            "--insert-after",
            "-A"
          ],
          "description": "Insert after",
          "args": {
            "name": "insert_after",
            "isOptional": false
          }
        },
        {
          "names": [
            "--insert-before",
            "-B"
          ],
          "description": "Insert before",
          "args": {
            "name": "insert_before",
            "isOptional": false
          }
        }
      ],
      "args": [
        {
          "name": "parents",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "describe",
      "description": "Set the description of a change; opens an editor unless a message is given.",
      "options": [
        {
          "names": [
            "--message",
            "-m"
          ],
          "description": "Description",
          "args": {
            "name": "message",
            "isOptional": false
          }
        },
        {
          "names": [
            "--editor"
          ],
          "description": "Open editor anyway"
        }
      ],
      "args": [
        {
          "name": "revsets",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "git",
      "subcommands": [
        {
          "name": "clone",
          "description": "Create a new Jujutsu repo backed by a clone of a Git repository.",
          "options": [
            {
              "names": [
                "--remote"
              ],
              "description": "Remote name",
              "args": {
                "name": "remote",
                "isOptional": false
              }
            },
            {
              "names": [
                "--colocate"
              ],
              "description": "Colocate with Git"
            },
            {
              "names": [
                "--no-colocate"
              ],
              "description": "Do not colocate"
            },
            {
              "names": [
                "--depth"
              ],
              "description": "Shallow clone depth",
              "args": {
                "name": "depth",
                "isOptional": false
              }
            },
            {
              "names": [
                "--branch",
                "-b"
              ],
              "description": "Branch",
              "args": {
                "name": "branch",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            }
          ],
          "args": [
            {
              "name": "source",
              "isOptional": true
            },
            {
              "name": "destination",
              "isOptional": true,
              "template": "folders"
            }
          ]
        },
        {
          "name": "push",
          "description": "Push bookmarks to a remote. Safety checks are done by jj; --change and private/empty-description overrides are left out.",
          "options": [
            {
              "names": [
                "--remote"
              ],
              "description": "Remote",
              "args": {
                "name": "remote",
                "isOptional": false
              }
            },
            {
              "names": [
                "--bookmark",
                "-b"
              ],
              "description": "Bookmark",
              "args": {
                "name": "bookmark",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--tag",
                "-t"
              ],
              "description": "Tag",
              "args": {
                "name": "tag",
                "isOptional": false,
                "isVariadic": true
              },
              "isRepeatable": true
            },
            {
              "names": [
                "--all"
              ],
              "description": "Push everything"
            },
            {
              "names": [
                "--tracked"
              ],
              "description": "Tracked only"
            },
            {
              "names": [
                "--deleted"
              ],
              "description": "Push deletions",
              "isDangerous": true
            }
          ]
        }
      ]
    }
  ]
}
