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
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
=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
=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):
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
=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,
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.