Branch layout

By default, gbp uses one branch to keep the Debian™ packaging called master and a branch to keep the upstream packaging called upstream.

This layout is simple to get started but falls short if one needs to maintain several versions of the package at the same time. Therefore the following the DEP-14 layout is recommended:

debian/latest

the latest Debian™ packaging

debian/<release>

the Debian™ packaging for a specific release or suite like jessie, stretch, sid, jessie, jessie-backports, jessie-security or experimental.

upstream/latest

the latest upstream release sources.

dfsg/latest

the DFSG-clean upstream sources in case the cleanup is done via a Git merge from upstream to this branch.

In case pristine-tar is being used, there will be a single pristine-tar branch that keeps all binary deltas.

Note that the upstream/latest branch is to contain the upstream source code as it was at the time of the upstream release, which was imported into Debian packaging. The upstream/latest ref is not intended to point to the tip of upstream's development branch.

Using upstream tarballs is recommended as it allows signature verification of the tarballs. If upstream uses git and tags their releases, it is recommended to also use gbp import-orig's --upstream-vcs-tag to have a fully traceable path from upstream git tag, to tarball contents, to what was imported into Debian. As this brings the upstream development history into the packaging repository it also makes cherry picking upstream commits simple.