X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit-junk.git;a=blobdiff_plain;f=git-workflows;h=deb6e14c52501a417344ec39f5007ac7e6502c68;hp=56688e4eea803ff6ed70355961b4558679ee69a3;hb=14487f18a07a68935eeb45407fb16ff79ca6d312;hpb=837b700b9c72273589aa215fa3f940ca36ad8a32;ds=sidebyside diff --git a/git-workflows b/git-workflows index 56688e4..deb6e14 100644 --- a/git-workflows +++ b/git-workflows @@ -1,72 +1,197 @@ -From: Ian Jackson -To: debian-devel@lists.debian.org -Subject: Survey: git packaging practices / repository format -Date: Tue, 28 May 2019 16:51:10 +0100 - -While trying to write the dgit FAQ, and some of the relevant docs, it -has become even more painfully obvious that we lack a good handle on -what all the different ways are that people use git to do their Debian -packaging, and what people call these formats/workflows, and what -tools they use. - -Can you please look through the table below and see if I have covered -everything you do ? - -In particular: - - have I missed a git repository and history layout - - have I missed a primary tool that should be mentioned - - are any of the details wrong for workflows that you use ? - - Main packaging Delta from upstream Tools for manipulating - git branch represented as delta from upstream, - contains building .dsc, etc. - - Unmodified debian/patches gbp, gbp pq - upstream files, (only) quilt / dquilt - plus debian/* Manual patch editing + + Main packaging + git branch + contains + +- + +Delta from upstream + represented as + +- + +Tools for manipulating + delta from upstream, + building .dsc, etc. + + +================================================== + + Unmodified + upstream files, + plus debian/* incl. d/patches - Modified Direct changes git merge - upstream files, to upstream files (.dsc: 1.0-with-diff or - plus debian/*. single-debian-patch) +- + +debian/patches + (only) + +- + +quilt / dquilt +Manual patch copying +Manual patch editing +Possibly gbp for building + +================================================== + + Modified + upstream files, + plus debian/*. Maybe d/patches, depending. History has direct merges from upstream. - Modified Direct changes to git-debrebase - upstream files, upstream files. +- + +Direct changes + to upstream files + +- + +git merge + (.dsc: 1.0-with-diff or + single-debian-patch) + +================================================== + + Modified + upstream files, plus debian/* Sometimes d/patches. History is special git-debrebase rebasing topic branch format. - Modified Direct changes to git-dpm - upstream files, upstream files +- + +Direct changes to + upstream files. + +- + +git-debrebase + +================================================== + + Modified + upstream files, plus debian/*, plus d/patches, plus .git-dpm History is special git-dpm rebasing topic branch format. - Only debian/*, d/patches, only; gbp ? - with d/patches Baseline upstream: quilt/dquilt ? - changelog version => - upstream git tag - - Only debian/*, d/patches, only; gbp ? - with d/patches Baseline upstream: quilt/dquilt ? - changelog version => - .orig tarball(s) - - Template debian/*. Patches in package- language-specific - One branch for specific subdirectory; monorepo tooling, - many packages. found in same branch - Tooling to make Baseline upstream is - d/control etc. named by reference somehow +- + +Direct changes to + upstream files + +- + +git-dpm + +================================================== + + Only debian/*, + with d/patches + +- + +d/patches, only; +Baseline upstream: + changelog version => + upstream git tag + +- + +gbp ? +quilt/dquilt ? + +================================================== + + Only debian/*, + with d/patches + +- + +d/patches, only; +Baseline upstream: + changelog version => + .orig tarball(s) + +- + +gbp ? +quilt/dquilt ? + +================================================== + + Template debian/*. + One branch for + many packages. + Tooling to make + d/control etc. during build -Thanks, -Ian. +- + +Patches in package- + specific subdirectory; + +Baseline upstream is + named by reference somehow + +- + +language-specific + monorepo tooling, + found in same branch + + +================================================== + +Template debian/* +No upstream files + +- + +d/patches, only: + changelog version => + .orig tarball(s) + +- + +Custom package-specific tooling to generate missing +parts of debian/ from the template(s) + +================================================== + +Upstream files from a git tag, +perhaps partially modified + +- + +Modifications directly in git +plus further patches in d/patches + +changelog version => .orig tarball(s) + +- + +format 1.0-with-diff +debian/rules, not dpkg-source, applies debian/patches + +================================================== + +Modified upstream files +plus debian/* +no d/patches + +- + +Direct changes to upstream files + +- + +git-debcherry --- -Ian Jackson These opinions are my own. +================================================== -If I emailed you from an address @fyvzl.net or @evade.org.uk, that is -a private address which bypasses my fierce spamfilter.