{
    "content": [
        {
            "type": "text",
            "text": "# debcommit (man)\n\n## NAME\n\ndebcommit - commit changes to a package\n\n## SYNOPSIS\n\ndebcommit [options] [--all | files to commit]\n\n## DESCRIPTION\n\ndebcommit generates a commit message based on new text in debian/changelog, and commits the\nchange to a package's repository. It must be run in a working copy for the package. Supported\nversion control systems are: cvs, git, hg (mercurial), svk, svn (Subversion), baz, bzr, tla\n(arch), darcs.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **OPTIONS** (11 subsections)\n- **CONFIGURATION VARIABLES**\n- **VCS SPECIFIC FEATURES**\n- **LICENSE**\n- **AUTHOR**\n- **SEE ALSO**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "debcommit",
        "section": "",
        "mode": "man",
        "summary": "debcommit - commit changes to a package",
        "synopsis": "debcommit [options] [--all | files to commit]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "-c",
                "long": "--changelog",
                "arg": null,
                "description": "Specify an alternate location for the changelog. By default debian/changelog is used."
            },
            {
                "flag": "-r",
                "long": "--release",
                "arg": null,
                "description": "Commit a release of the package. The version number is determined from debian/changelog, and is used to tag the package in the repository. Note that svn/svk tagging conventions vary, so debcommit uses svnpath(1) to determine where the tag should be placed in the repository."
            },
            {
                "flag": "-R",
                "long": "--release-use-changelog",
                "arg": null,
                "description": "When used in conjunction with --release, if there are uncommitted changes to the changelog then derive the commit message from those changes rather than using the default message."
            },
            {
                "flag": "-m",
                "long": "--message",
                "arg": null,
                "description": "Specify a commit message to use. Useful if the program cannot determine a commit message on its own based on debian/changelog, or if you want to override the default message."
            },
            {
                "flag": "-n",
                "long": "--noact",
                "arg": null,
                "description": "Do not actually do anything, but do print the commands that would be run."
            },
            {
                "flag": "-d",
                "long": "--diff",
                "arg": null,
                "description": "Instead of committing, do print the diff of what would have been committed if this option were not given. A typical usage scenario of this option is the generation of patches against the current working copy (e.g. when you don't have commit access right)."
            },
            {
                "flag": "-C",
                "long": "--confirm",
                "arg": null,
                "description": "Display the generated commit message and ask for confirmation before committing it. It is also possible to edit the message at this stage; in this case, the confirmation prompt will be re-displayed after the editing has been performed."
            },
            {
                "flag": "-e",
                "long": "--edit",
                "arg": null,
                "description": "Edit the generated commit message in your favorite editor before committing it."
            },
            {
                "flag": "-a",
                "long": "--all",
                "arg": null,
                "description": "Commit all files. This is the default operation when using a VCS other than git."
            },
            {
                "flag": "-s",
                "long": "--no-strip-message",
                "arg": null,
                "description": "If this option is set and the commit message has been derived from the changelog, the characters \"* \" will be stripped from the beginning of the message. This option is set by default and ignored if more than one line of the message begins with \"[*+-] \". --sign-commit, --no-sign-commit If this option is set, then the commits that debcommit creates will be signed using gnupg. Currently this is only supported by git, hg, and bzr. --sign-tags, --no-sign-tags If this option is set, then tags that debcommit creates will be signed using gnupg. Currently this is only supported by git."
            },
            {
                "flag": "",
                "long": "--changelog-info",
                "arg": null,
                "description": "If this option is set, the commit author and date will be determined from the Maintainer and Date field of the first paragraph in debian/changelog. This is mainly useful when using debchange(1) with the --no-mainttrailer option."
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "debchange",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/debchange/1/json"
            },
            {
                "name": "svnpath",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/svnpath/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "-c --changelog _",
                        "lines": 2,
                        "flag": "-c",
                        "long": "--changelog"
                    },
                    {
                        "name": "-r --release",
                        "lines": 6,
                        "flag": "-r",
                        "long": "--release"
                    },
                    {
                        "name": "-R --release-use-changelog",
                        "lines": 4,
                        "flag": "-R",
                        "long": "--release-use-changelog"
                    },
                    {
                        "name": "-m _ --message _",
                        "lines": 3,
                        "flag": "-m",
                        "long": "--message"
                    },
                    {
                        "name": "-n --noact",
                        "lines": 2,
                        "flag": "-n",
                        "long": "--noact"
                    },
                    {
                        "name": "-d --diff",
                        "lines": 4,
                        "flag": "-d",
                        "long": "--diff"
                    },
                    {
                        "name": "-C --confirm",
                        "lines": 4,
                        "flag": "-C",
                        "long": "--confirm"
                    },
                    {
                        "name": "-e --edit",
                        "lines": 2,
                        "flag": "-e",
                        "long": "--edit"
                    },
                    {
                        "name": "-a --all",
                        "lines": 2,
                        "flag": "-a",
                        "long": "--all"
                    },
                    {
                        "name": "-s --strip-message --no-strip-message",
                        "lines": 14,
                        "flag": "-s",
                        "long": "--no-strip-message"
                    },
                    {
                        "name": "--changelog-info",
                        "lines": 4,
                        "long": "--changelog-info"
                    }
                ]
            },
            {
                "name": "CONFIGURATION VARIABLES",
                "lines": 25,
                "subsections": []
            },
            {
                "name": "VCS SPECIFIC FEATURES",
                "lines": 24,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "debcommit - commit changes to a package\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "debcommit [options] [--all | files to commit]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "debcommit generates a commit message based on new text in debian/changelog, and commits the\nchange to a package's repository. It must be run in a working copy for the package. Supported\nversion control systems are: cvs, git, hg (mercurial), svk, svn (Subversion), baz, bzr, tla\n(arch), darcs.\n",
                "subsections": []
            },
            "OPTIONS": {
                "content": "",
                "subsections": [
                    {
                        "name": "-c --changelog _",
                        "content": "Specify an alternate location for the changelog. By default debian/changelog is used.\n",
                        "flag": "-c",
                        "long": "--changelog"
                    },
                    {
                        "name": "-r --release",
                        "content": "Commit  a release of the package. The version number is determined from debian/changelog,\nand is used to tag the package in the repository.\n\nNote that svn/svk tagging conventions vary, so debcommit  uses  svnpath(1)  to  determine\nwhere the tag should be placed in the repository.\n",
                        "flag": "-r",
                        "long": "--release"
                    },
                    {
                        "name": "-R --release-use-changelog",
                        "content": "When  used  in  conjunction  with  --release,  if  there  are  uncommitted changes to the\nchangelog then derive the commit message from those changes rather than using the default\nmessage.\n",
                        "flag": "-R",
                        "long": "--release-use-changelog"
                    },
                    {
                        "name": "-m _ --message _",
                        "content": "Specify a commit message to use. Useful if the program cannot determine a commit  message\non its own based on debian/changelog, or if you want to override the default message.\n",
                        "flag": "-m",
                        "long": "--message"
                    },
                    {
                        "name": "-n --noact",
                        "content": "Do not actually do anything, but do print the commands that would be run.\n",
                        "flag": "-n",
                        "long": "--noact"
                    },
                    {
                        "name": "-d --diff",
                        "content": "Instead of committing, do print the diff of what would have been committed if this option\nwere  not  given.  A  typical  usage scenario of this option is the generation of patches\nagainst the current working copy (e.g. when you don't have commit access right).\n",
                        "flag": "-d",
                        "long": "--diff"
                    },
                    {
                        "name": "-C --confirm",
                        "content": "Display the generated commit message and ask for confirmation before committing it. It is\nalso possible to edit the message at this stage; in this case,  the  confirmation  prompt\nwill be re-displayed after the editing has been performed.\n",
                        "flag": "-C",
                        "long": "--confirm"
                    },
                    {
                        "name": "-e --edit",
                        "content": "Edit the generated commit message in your favorite editor before committing it.\n",
                        "flag": "-e",
                        "long": "--edit"
                    },
                    {
                        "name": "-a --all",
                        "content": "Commit all files. This is the default operation when using a VCS other than git.\n",
                        "flag": "-a",
                        "long": "--all"
                    },
                    {
                        "name": "-s --strip-message --no-strip-message",
                        "content": "If  this  option  is  set and the commit message has been derived from the changelog, the\ncharacters \"* \" will be stripped from the beginning of the message.\n\nThis option is set by default and ignored if more than one line  of  the  message  begins\nwith \"[*+-] \".\n\n--sign-commit, --no-sign-commit\nIf  this  option  is  set,  then  the commits that debcommit creates will be signed using\ngnupg. Currently this is only supported by git, hg, and bzr.\n\n--sign-tags, --no-sign-tags\nIf this option is set, then tags that debcommit  creates  will  be  signed  using  gnupg.\nCurrently this is only supported by git.\n",
                        "flag": "-s",
                        "long": "--no-strip-message"
                    },
                    {
                        "name": "--changelog-info",
                        "content": "If  this option is set, the commit author and date will be determined from the Maintainer\nand Date field of the first paragraph in debian/changelog.  This is  mainly  useful  when\nusing debchange(1) with the --no-mainttrailer option.\n",
                        "long": "--changelog-info"
                    }
                ]
            },
            "CONFIGURATION VARIABLES": {
                "content": "The  two configuration files /etc/devscripts.conf and ~/.devscripts are sourced by a shell in\nthat order to set configuration variables.  Command line options  can  be  used  to  override\nconfiguration  file  settings.   Environment  variable settings are ignored for this purpose.\nThe currently recognised variables are:\n\nDEBCOMMITSTRIPMESSAGE\nIf this is set to no, then  it  is  the  same  as  the  --no-strip-message  command  line\nparameter being used. The default is yes.\n\nDEBCOMMITSIGNTAGS\nIf  this  is  set  to  yes, then it is the same as the --sign-tags command line parameter\nbeing used. The default is no.\n\nDEBCOMMITSIGNCOMMITS\nIf this is set to yes, then it is the same as the --sign-commit  command  line  parameter\nbeing used. The default is no.\n\nDEBCOMMITRELEASEUSECHANGELOG\nIf  this  is  set to yes, then it is the same as the --release-use-changelog command line\nparameter being used. The default is no.\n\nDEBSIGNKEYID\nThis is the key id used for signing tags. If not set, a default will  be  chosen  by  the\nrevision control system.\n",
                "subsections": []
            },
            "VCS SPECIFIC FEATURES": {
                "content": "tla / baz\nIf  the  commit  message  contains  more  than  72  characters, a summary will be created\ncontaining as many full words from the message as will fit within 72 characters, followed\nby an ellipsis.\n\nEach of the features described below is applicable  only  if  the  commit  message  has  been\nautomatically determined from the changelog.\n\ngit If  only  a  single  change  is  detected in the changelog, debcommit will unfold it to a\nsingle line and behave as if --strip-message was used.\n\nOtherwise, the first change will be unfolded and stripped to form a summary  line  and  a\ncommit  message formed using the summary line followed by a blank line and the changes as\nextracted from the changelog. debcommit will then spawn an editor so that the message may\nbe fine-tuned before committing.\n\nhg / darcs\nThe first change detected in the changelog  will  be  unfolded  to  form  a  single  line\nsummary.  If  multiple  changes were detected then an editor will be spawned to allow the\nmessage to be fine-tuned.\n\nbzr If the changelog entry used for the commit message closes any bugs then  --fixes  options\nto \"bzr commit\" will be generated to associate the revision and the bugs.\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "This  code  is  copyright by Joey Hess <joeyh@debian.org>, all rights reserved.  This program\ncomes with ABSOLUTELY NO WARRANTY.  You are free to redistribute this code under the terms of\nthe GNU General Public License, version 2 or later.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Joey Hess <joeyh@debian.org>\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "debchange(1), svnpath(1)\n\nDebian Utilities                             2026-02-25                                 DEBCOMMIT(1)",
                "subsections": []
            }
        }
    }
}