chiark / gitweb /
git-debrebase(5): wip, converting from README
[dgit.git] / README.git-debrebase
index ba00951..19ddbc0 100644 (file)
@@ -1,57 +1,5 @@
 
 
-My preferred answer is that it is a constantly rebasing branch topped
-with a series of pseudomerges to make it fast-forwarding.
-
-           ------/--A!----/--B3!--%--/--> interchange view
-                /        /          /      with debian/ directory
-               %        %          %       all upstream changes applied
-              /        /          /        3.0 (quilt) has debian/patches
-             /        /          3*
-            /        /          /
-           2*       2*         2
-          /        /          /
-         1        1          1    `breakwater' branch, merging baseline
-        /        /          /     unmodified upstream code
-    ---@-----@--A----@--B--C      plus debian/ (but no debian/patches)
-      /     /       /                    no ref refers to this: we
-   --#-----#-------#-----> upstream        reconstruct its identity by
-                                          inspecting interchange branch
-    Key:
-
-      1,2,3   commits touching upstream files only
-      A,B,C   commits touching debian/ only
-      B3      mixed commit (eg made by an NMUer)
-      #       upstream releases
-
-     -@-      anchor merge, takes contents of debian/ from the
-     /         previous `breakwater' commit and rest from upstream
-
-     -/-      pseudomerge; contents are identical to
-     /         parent lower on diagram.
-
-      %       dgit-generated commit of debian/patches.
-              `3.0 (quilt)' only; dropped by rebase tool.
-
-      *       Maintainer's HEAD was here while they were editing,
-              before they said they were done, at which point their
-              tools generated [% and] -/- commit[s] to convert to
-              the fast-forwarding interchange branch.  (Maybe the
-              tooling is simply `dgit push'.)
-
-      !       NMUer's HEAD was here when they said `dgit push'.
-              Rebase branch launderer turns each ! into an
-              equivalent *.
-
-
-Looking from the tip of the interchange view, it is I think always
-possible to classify these commits appropriately: pseudomerges are
-fairly obvious (if all three trees are identical, we descend to the
-parent with the most recent commit date).  The `@' special merge is
-the only non-pseudo merge and has a special form; also, it will be
-generated only by our tools so can have an annotation in the commit
-message.
-
 So it would be possible to write a `git-debrebase' tool which would
 take (for example) B4, above, and be able to perform functions like:
 
@@ -83,18 +31,6 @@ take (for example) B4, above, and be able to perform functions like:
 Maybe some of these operations should automatically edit
 debian/changelog.
 
-Nonlinear (merging) history in the interchange branch is awkward
-because it (obviously) does not preserve the patch queue.
-
-Nonlinear (merging) history in the `packaging-only' branch is OK, if
-we could generate it.  We will use the commit message annotation to
-distinguish a merge of two `packaging-only' branches from the special
-merge `@'.  (Indeed I since upstream might copy debian/ from us,
-without the annotation and knowledge of the construction order it is
-not easy to reliably distinguish the two parents of a `@'.  In the
-most exciting edge case, upstream might `git merge' a previous
-instance of our interchange view, but I think even then everything
-still works.)
 
 Sean Whitton writes ("Re: Feedback on 3.0 source format problems"):
 >  Does the [breakwater] branch contain debian/ alone?