X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase.5.pod;h=ce982369c3132af1110e2d6d4f62b104659403c0;hp=1c73ea3a15990a401d1f0097f14cd48fa71dd94e;hb=d76a377b48bbcc3dcaf85100588a2d5d4d151db4;hpb=2c673e36ec3a2ab290db7588680dcfee82b24616 diff --git a/git-debrebase.5.pod b/git-debrebase.5.pod index 1c73ea3a..ce982369 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. +(These can be stripped out and/or regenerated as needed.) + +=back + =head1 TERMINOLOGY =over