chiark / gitweb /
git-workflows: final delimiter
[dgit-junk.git] / git-workflows
index 56688e4eea803ff6ed70355961b4558679ee69a3..deb6e14c52501a417344ec39f5007ac7e6502c68 100644 (file)
-From: Ian Jackson <ijackson@chiark.greenend.org.uk>
-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
 
  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.
 
  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.
 
  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.
 
  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
 
   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 <ijackson@chiark.greenend.org.uk>   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.