dgit workflow

Date: 2019/02/11 (initial publish), 2021/01/26 (last update)

Source: en/note-00003.md

Previous Post Top Next Post

TOC

For Debian maintainer, there can be 4 approaches for maintaining git repository with dgit. Let me get all key points of manpages.

tutorials model tool history patch quilt maintainer
dgit-maint-native(7) native git(1) upstream git (same) N/A upstream
dgit-maint-merge(7) merge git merge(1) upstream git applied merged upstream involved
dgit-maint-debrebase(7) rebasish git-debrebase(1) upstream git applied series pure downstream
dgit-maint-gbp(7) gbp git-buildpackage(1) upstream tar unapplied series pure downstream

Here, the maintainer column indicates relationship of the maintainer to the upstream development.

Let’s copy key parts of manpages.

dgit-maint-native(7)

This document describes elements of a workflow for using dgit to maintain a Debian package that uses one of the native source formats (“1.0” & “3.0 (native)”).

Benefits

dgit-maint-merge(7)

This document describes elements of a workflow for maintaining a non- native Debian package using dgit. The workflow makes the following opinionated assumptions:

This workflow is less suitable for some packages. When the Debian delta contains multiple pieces which interact, or which you aren’t going to be able to upstream soon, it might be preferable to maintain the delta as a rebasing patch series. For such a workflow see for example dgit-maint-debrebase(7) and dgit-maint-gbp(7).

dgit-maint-debrebase(7)

This document describes elements of a workflow for maintaining a non- native Debian package using dgit. We maintain the Debian delta as a series of git commits on our master branch. We use git-debrebase(1) to shuffle our branch such that this series of git commits appears at the end of the branch. All the public git history is fast-forwarding, i.e., we do not rewrite and force-push.

Some advantages of this workflow:

This workflow is appropriate for packages where the Debian delta contains multiple pieces which interact, or which you don’t expect to be able to upstream soon. For packages with simple and/or short-lived Debian deltas, use of git-debrebase(1) introduces unneeded complexity. For such packages, consider the workflow described in dgit-maint-merge(7).

dgit-maint-gbp(7)

This document explains how dgit can be incorporated into a git-buildpackage(1) package-maintenance workflow. This should be read jointly with git-buildpackage(1)’s documentation. Some reasons why you might want to incorporate dgit into your existing workflow:

Note that we assume a patches-unapplied repository: the upstream source committed to the git repository is unpatched. git-buildpackage(1) can work with patched-applied repositories, but is normally used with patches-unapplied.

gbp-import-orig usage with dgit

Let me compare gbp-import-orig usage for each dgit strategy.

Stanza \ Strategy dgit-maint-merge dgit-maint-debrebase dgit-maint-gbp dgit-maint-native
Use of debian/gbp.conf customize customize default not applicable ???
upstream-branch upstream upstream upstream --
debian-branch master master master master
upstream-tag upstream/%(version)s upstream/%(version)s upstream/%(version)s %(version)s ???
sign-tags True True True True
pristine-tar False False True * -- (N/A)
pristine-tar-commit False False True * -- (N/A)
merge-mode merge merge replace <- 3.0 (quilt) -- (N/A)
merge False True * True * -- (N/A)
Previous Post Top Next Post