SYNOPSIS
git-dch [ --verbose ] [ --debian-branch=branch_name ] [ --debian-tag=tag-format ] [ --ignore-branch ] [ --since=commitish ] [ --snapshot ] [ --release ] [ --auto ] [ --[no-]full ] [ --[no-]meta ] [ --meta-closes=bug-close-tags ] [ --snapshot-number=expression ] [ --git-log=git-log-options ] [ --[no-]git-author ] [ --[no-]multimaint-merge ] [path1 path2]
DESCRIPTION
git-dch reads git commit messages and generates the Debian changelog from it. If no arguments are given git-dch starts from the last tagged Debian package version up to the current tip of the current branch. If the distribution of the topmost section in debian/changelog is UNRELEASED the changelog entries will be inserted into this section. Otherwise a new section will be created.
If --auto is given git-dch tries to guess the last Git commit documented in the changelog - this only works in snapshot mode. Otherwise --since can be used to tell git-dch at which point it should start in the Git history.
The additional path arguments can be used to restrict the repository paths git-dch looks at. Setting path to debian/ is a good choice if upstream uses Git and all Debian packaging changes are restricted to the debian/ subdir. In more sophisticated cases (like backports) you can use --git-log to restrict the generated changelog entries further. E.g. by using --git-log="--author=Foo Bar".
OPTIONS
- --debian-branch=branch_name
- The branch in the Git repository the Debian package is being developed on, default is master.
- --ignore-branch
- Don't check if the current branch matches debian-branch.
- --verbose
- -v
- verbose execution
- --debian-tag=tag-format
- tag format used, when tagging debian versions, default is debian/<version>
- --since=committish
- Start reading commit messages at committish.
- --auto, -a
- Guess the last commit documented in the changelog from the snapshot banner (or from the last tag if no snapshot banner exists).
- --[no-]meta
- Parse meta tags like Closes:, Thanks: and Git-Dch:.
- --meta-closes=bug-close-tags
- What meta tags to look for to generate bug-closing changelog entries. The default is 'Closes|LP' to support Debian and Launchpad.
- --[no-]full
- Include the full commit message in the changelog output.
- --snapshot, -S
- Create a snapshot release entry. This adds a snapshot release number and a warning banner to the changelog entry. The release version number is being autoincremented with every new snapshot release to avoid packages downgrades during snapshot testing.
- --snapshot-number=expression
- Python expression that gets eval()ed to the new snapshot number.
- --release, -R
- Remove any snapshot release banners and version suffixes, set the current distribution to unstable and open the changelog for final tweaking.
- --new-version=version, -N version
- Add a new changelog section with version newversion. Together with --snapshot the snapshot number will be appended to newversion.
- --git-log=git-log-options
- Options passed on verbatim to git-log(1).
- --id-length=N
- Include N digits of the commit id in the changelog entry. Default is to not include any commit ids at all.
- --ignore-regex=regex
- Ignore commit lines matching regex when generating the changelog.
- --git-author
- Use user.name and user.email from git-config(1) for changelog trailer.
- --[no]-multimaintmerge
- Merge commits by maintainer.
SNAPSHOT MODE
Snapshot mode can be used for quick test and install cycles without having to worry about version numbers or changelog entries.
When using --snapshot or -S git-dch uses a pseudo header in the Debian changelog to remember the last git commit it added a changelog entry for. It also sets a version number ending in ~<snaspshotnumber>.gbp<commitid>. It automatically increments the snapshot number on subsequent invocations of git-dch -S so that later snapshots automatically have a higher version number. To leave snapshot mode invoke git-dch with the --release option. This removes the pseudo heaader and unmangles the version number so the released version has a higher version number than the snapshots.
CONFIGURATION FILES
Four configuration files are parsed to set defaults for the above commandline arguments:
- /etc/git-buildpackage/gbp.conf
- system wide configuraton
- ~/.gbp.conf
- per user configuration
- .gbp.conf
- per branch configuration, can be published with the repository
- debian/gbp.conf
- per branch configuration, can be published with the repository
- .git/gbp.conf
- per repository configuration
See /etc/git-buildpackage/gbp.conf for an example.