+ * New upstream rebase: Start rebasing onto a new upstream version,
+ turning ...#...p-A-B-1-2-3 into ...#'.A-B-p'-1-2. This would be a
+ wrapper around git-rebase, which prepares p' and then tries to
+ rebase 1 2 onto p'. So if you ask for an interactive rebase p'
+ doesn't appear in your commit list.
+
+ Note that the rebasing of p into p' cannot fail because p' 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 we can `git log' and get the packaging history.)
+
+ * Record pseudomerge. This is like "committing" your patch queue.
+ The LH parent is taken from the previous strip pseudomerge. (We
+ should probably check that this is consistent with what we see in
+ debian/changelog, but that is not a sufficient check.)
+
+Maybe some of these operations should automatically edit
+debian/changelog.
+
+The only thing that this can't easily do is permit nonlinear (ie,
+merging) history on the `packaging-only' branch, because upstream
+might contain debian/ files too, so it is not possible to distinguish
+a merge of two `packaging-only' branches from the special merge `p'.
+(Indeed I since upstream might copy debian/ from us, I think it is not
+easy to reliably distinguish the two parents of a `p'. 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?
+
+No, it also contains a complete unmodified copy of the upstream code.
+(Except that if upstream had a debian/ directory, it is completely
+replaced.)
+
+For `3.0 (quilt)' the breakwater branch contains roughly what you
+would get if you untarred the origs and the debian.tar.gz, and then
+deleted all the patches without applying them.
+
+
+
+Consider a non-dgit NMU followed by a dgit NMU:
+
+
+
+ interchange --/--B3!--%--/----E--->
+ / /
+ % 4
+ / 3
+ / 2
+ / 1
+ 2* &_
+ / /| \
+ 1 0 00 =XBCD
+ /
+ /
+ --p--A---> breakwater
+ /
+ --#--------> upstream
+
+
+ Key:
+
+ =XBC% dgit tarball import of .debian.tar.gz containing
+ Debian packaging including changes B C and patches
+
+ 0 dgit tarball import of upstream tarball
+
+ 00 dgit tarball import of supplementary upstream tarball
+
+ &_ dgit nearly-breakwater import
+
+ &' git-debrebase converted import
+
+ D' git-debrebase converted debian/ changes import
+
+Want to transform this into:
+
+ I. No new upstream version (0 + 00 eq #)
+
+ --/--B3!--%--/------D--------------/-->
+ / / /
+ % 4 4
+ / 3 3
+ / 2 2
+ / 1 1
+ 2* &_ /
+ / /| \ /
+ 1 0 00 =XBC% /
+ / /
+ / /
+ --p--A-----B-----------------------C--D--->
+ /
+ --#----------------------------------------->
+
+
+ II. New upstream (0 + 00 neq #)
+
+ interchange
+
+ --/--B3!--%--/------E--------------/-->
+ / / /
+ % 4 4
+ / 3 3
+ / 2 2
+ / 1 1
+ 2* &_ /
+ / /| \ /
+ 1 0 00 =XBC% /
+ / /
+ / /
+ --p--A-----B--------------------p--C--D--->
+ / /
+ --#----------------------- - - / - - ----->
+ /
+ &'
+ /|
+ 0 00