chiark / gitweb /
git-debrebase(5): Rework the description a bit
[dgit.git] / git-debrebase.5.pod
index fb9cff297f099d4252b639ca4bc4afc34e2cb898..f181a40ec50a543472e04f079785a4435c67de51 100644 (file)
@@ -116,11 +116,13 @@ state,
 which means it has a more particular special form
 convenient for manipulating the delta queue.
 
-=head1 BRANCH CONTENTS
+=head1 BRANCH CONTENTS - DETAILED SPECIFICATION
 
 It is most convenient to describe the
-B<laundered>
-state first.
+B<breakwater>
+branch first.
+A breakwater is B<fast-forwarding>,
+but is not usually named by a ref.
 It contains B<in this order> (ancestors first):
 
 =over
@@ -151,6 +153,18 @@ Zero or more single-parent commits
 containing only packaging changes.
 (And no quilt patch changes.)
 
+=back
+
+The
+B<laundered>
+branch state is B<rebasing>.
+A laundered branch is based on a breakwater
+but also contains, additionally,
+B<after> the breakwater,
+a representation of the delta queue:
+
+=over
+
 =item Delta queue commits
 
 Zero or more single-parent commits
@@ -158,13 +172,14 @@ contaioning only changes to upstream files.
 
 =back
 
-The
+An
 B<unstitched>
 (unlaundered)
-branch state is the same,
+branch state is also B<rebasing>.
+It has the same contents as the laundered state,
 except that it may contain,
 additionally,
-in B<in any order>:
+in B<in any order but after the breakwater>:
 
 =over
 
@@ -188,9 +203,12 @@ they are deleted when branches are laundered.
 
 =back
 
-The
+Finally, an
 B<interchange>
-branch state is the same, but may additionally contain
+branch is B<fast forwarding>.
+It has the same contents as an
+unlaundered branch state,
+but may (and usually will) additionally contain
 (in some order,
 possibly intermixed with the extra commits
 which may be found on an unstitched unlaundered branch):
@@ -257,6 +275,12 @@ the interchange and breakwater branches may be identical,
 in which case the unstitched branch is fast forward
 from the interchange branch and no pseudomerge is needed.
 
+When ffq-prev is not present,
+C<refs/debrebase-last/B> records some ancestor of refs/B,
+(usually, the result of last stitch).
+This can be used to quickly determine whether refs/B
+is being maintained in git-debrebase form.
+
 =head1 OTHER MERGES
 
 Note that the representation described here does not permit
@@ -304,7 +328,8 @@ or both.
 =item Launder branch
 
 Record the previous tip in ffq-prev,
-if we were stitched before.
+if we were stitched before
+(and delete debrebase-last).
 
 Reorganise the current branch so that the packaging
 changes come first,
@@ -340,7 +365,8 @@ Make a pseudomerge,
 whose contributing parent to is the unstitched branch
 and
 whose overwritten parent is ffq-prev,
-consuming ffq-prev in the process.
+consuming ffq-prev in the process
+(and writing debrebase-last instead).
 Ideally the contributing parent would be a laundered branch,
 or perhaps a laundered branch with a quilt patch addition commit.