The unapplied branch format is the most commonly used branch format.
Branch format
- A git clone of the packaging branch contains
all files under debian/ in the uploaded source package, such as debian/control
all upstream files, e.g. README.md
If Debian has patched any of the upstream files, e.g. README.md,
those changes appear as a quilt patch series, in debian/patches/
they do not appear in the copy of the upstream files in a git clone of the packaging branch
e.g. README.md will not have debian/patches/ applied to it.
- There is no particular git history required, so long as it is fast-forwarding.
- The upstream source is obtained from either upstream's release tags or tarball imports.
The .dsc format is 3.0 (quilt).
dgit push supports this workflow with --quilt=gbp or --quilt=unapplied.
Common workflow elements
Often there are multiple ways of doing the same task.
New upstream version
- gbp-import-orig(1)
Editing the delta queue
- gbp-pq(1), quilt(1)
Adding new patches
- git-format-patch(1)
Building source and binary packages
- gbp-buildpackage(1), which might be configured to invoke pbuilder.
dgit --gbp pbuilder and dgit --gbp sbuild
Forwarding patches upstream
E-mail patches from d/patches, or use git-am(1) to apply those to a git branch to be submitted upstream for merging.
Incorporating NMUs
Apply quilt patches, apply the debdiff, unapply quilt patches, git commit.
Advantages
- git-merge(1) often Just Works.
Disadvantages
- Working tree repeatedly dirtied by application of patches.
- Editing delta queue with the full power of git (i.e. gbp-pq(1)) requires switching to a temporary local branch