summaryrefslogtreecommitdiff
path: root/git-debrebase.5.pod
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-02-18 21:36:45 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 16:06:59 +0100
commitd76a377b48bbcc3dcaf85100588a2d5d4d151db4 (patch)
tree8ea05bd01aba2763edc7e9fe4cb9449afaf8fe4c /git-debrebase.5.pod
parent2c673e36ec3a2ab290db7588680dcfee82b24616 (diff)
git-debrebase(5): more from README
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase.5.pod')
-rw-r--r--git-debrebase.5.pod62
1 files changed, 62 insertions, 0 deletions
diff --git a/git-debrebase.5.pod b/git-debrebase.5.pod
index 1c73ea3..ce98236 100644
--- a/git-debrebase.5.pod
+++ b/git-debrebase.5.pod
@@ -269,6 +269,68 @@ We use the commit message annotation to
distinguish the special anchor merges from other general merges,
so we can at least detect unsupported merges.
+=head1 LEGAL OPERATIONS
+
+The following basic operations follows from this model
+(refer to the diagram above):
+
+=over
+
+=item Append linear commits
+
+No matter the branch state,
+it is always fine to simply git commit
+(or cherry-pick etc.)
+commits containing upstream file changes, packaging changes,
+or both.
+
+=item Launder branch
+
+Record the previous tip in ffq-prev,
+if we were stitched before.
+
+Reorganise the current branch so that the debian/
+changes come first,
+turning C<-@-A-1-2-B3> into C<...@-A-B-1-2-3>.
+
+Drop pseudomerges and any quilt patches.
+
+=item Interactive rebase
+
+With a laundered branch,
+one can do an interactive git rebase of the delta queue.
+
+=item New upstream rebase
+
+Start rebasing onto a new upstream version,
+turning C<...#..@-A-B-1-2-3> into C<(...#..@-A-B-|...#'-)@'-1-2>.
+
+This has to be a wrapper around git-rebase,
+which prepares @' and then tries to rebase 1 2 onto @'.
+If the user asks for an interactive rebase,
+@' doesn't appear in thec ommit list.
+
+Note that the construction of @' cannot fail
+because @' simply copies debian/ from B and and everything else from #'.
+(Rebasing A and B is undesirable.
+We want the debian/ files to be non-rebasing
+so that git log shows the packaging history.)
+
+=item Stitch
+
+Make a pseudomerge,
+overwriting (and consuming) ffq-prev.
+
+=item Commit patches
+
+To generate a tree which can be represented as a
+3.0 (quilt) .dsc source packages,
+the delta queue must be reified inside the git tree
+in B<debian/patches/>.
+(These can be stripped out and/or regenerated as needed.)
+
+=back
+
=head1 TERMINOLOGY
=over