summaryrefslogtreecommitdiff
path: root/README.git-debrebase
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-02-18 21:14:14 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 16:06:59 +0100
commit47e5e2edc83917f5e21e00586a0907c1f641f174 (patch)
treedd9dcc385f509317d0602ba9c8af2412c6a2d338 /README.git-debrebase
parentac6f8cf1df126cf79e08d431932b76cec83f443a (diff)
git-debrebase(5): wip, converting from README
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'README.git-debrebase')
-rw-r--r--README.git-debrebase64
1 files changed, 0 insertions, 64 deletions
diff --git a/README.git-debrebase b/README.git-debrebase
index ba00951..19ddbc0 100644
--- a/README.git-debrebase
+++ b/README.git-debrebase
@@ -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?