Ok, so I have looked at both gbp-pq and git-dpm. To me, the key difference is different way they store the patches. There are minor differences in user interfaces, etc, however I don't consider these to be so important.
(apologies if this has already been said or contradicted, I am finding it hard to keep up with these threads) gbp-pq --------- Tutorial: https://honk.sigxcpu.org/piki/development/debian_packages_in_git/ In gbp-pq, the authoritative source is always the patches in debian/patches. The patch-queue is just for convenience, so you can update patches with standard git commands. There is no history kept of the patch-queue branch. Possibly the patch-queue branch shouldn't be pushed to remote repositories, because rebasing is expected. This makes it simple. History is kept of debian/patches. It is not possible to refer to patches with commit id, because this won't last a rebase or reedit. However, comparing different Debian versions with patches applied won't be so easy, you will have to check out two copies, manually apply the patches, and then do a diff. git-dpm ---------- Tutorial: http://git-dpm.alioth.debian.org/examples.html git-dpm keeps every version of every patch in git. As a result, every patch in debian/patches has a hash referencing the git commit. After merged into the Debian branch, this hash will not disappear even if the patch is deleted or changed. You can provide the commit id of the patch, if ever required (most cases the latest patch file might be better choice). As above, history is also kept of the debian/patches directory. I believe if you do a diff between two debian tags you will get the patches included. summary ----------- There are two options I haven't looked at: dgit and git-debcherry (or is that got-debcherry?) - mainly because I can't find these using Google. gbp-pq and git-dpm are not compatible methods. It is not possible to use git-dpm or a gbp-pq repostory or vis versa. If you use gbp-pq on a git-dpm repository, it will work, however, you will not preserve the patches in git where git-dpm expects to find them. So git-dpm will get confused and do the wrong thing the next time it is run. Somebody mentioned the ease of bisect. If you bisect a gbp-pq tree, you won't get the patches applied unless your testing does this. If you bisect the git-dpm tree, you will get the patches applied. bisecting on the Debian branch should be easy enough I think, despite the extra merges. I haven't done this myself. I am tending to side towards the git-dpm, because I like the idea of every git commit being preserved. gbp-pq feels to me like a version of quilt enhanced to support git for making local changes. As such if you want to work locally on a project without git-dpm support, and you don't want to change that, gbp-pq might be the best choice. Which is a lot better then basic quilt, however not as good as git-dpm for distributed development. I hope I haven't made too many mistakes :-) -- Brian May <br...@microcomaustralia.com.au>