From ad22a602e0a701c6527c94496d2aa7cd2e4ab1b6 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 18 Feb 2018 11:35:49 +0000 Subject: git-debrebase: README: change diagrams to use @ for anchor Signed-off-by: Ian Jackson --- README.git-debrebase | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.git-debrebase b/README.git-debrebase index 48ddd54..01048ef 100644 --- a/README.git-debrebase +++ b/README.git-debrebase @@ -13,7 +13,7 @@ with a series of pseudomerges to make it fast-forwarding. / / / 1 1 1 `breakwater' branch, merging baseline / / / unmodified upstream code - ---p-----p--A----p--B--C plus debian/ (but no debian/patches) + ---@-----@--A----@--B--C plus debian/ (but no debian/patches) / / / no ref refers to this: we --#-----#-------#-----> upstream reconstruct its identity by inspecting interchange branch @@ -24,7 +24,7 @@ with a series of pseudomerges to make it fast-forwarding. B3 mixed commit (eg made by an NMUer) # upstream releases - -p- anchor merge, takes contents of debian/ from the + -@- anchor merge, takes contents of debian/ from the / previous `breakwater' commit and rest from upstream -/- pseudomerge; contents are identical to @@ -47,27 +47,27 @@ with a series of pseudomerges to make it fast-forwarding. 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), and the `p' special merge is +parent with the most recent commit date), and the `@' special merge is the only non-pseudo merge and has a special form. 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: * Strip pseudomerges: Rewrite the current branch so it contains no - pseudomerges, turning ...B3 into ...p-A-1-2-B3. (This should + pseudomerges, turning ...B3 into ...@-A-1-2-B3. (This should make a note, in your .git/ somewhere, of the original branch tip so that it can be overwritten with a pseudomerge.) * Cleanup branch: Reorganise the current branch so that the debian/ - changes come first, turning -p-A-1-2-B3 into ...p-A-B-1-2-3. + changes come first, turning -@-A-1-2-B3 into ...@-A-B-1-2-3. * New upstream rebase: Start rebasing onto a new upstream version, - turning ...#..p-A-B-1-2-3 into (...#..p-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. + turning ...#..@-A-B-1-2-3 into (...#..@-A-B-|...#'-)@'-1-2. This + would be a wrapper around git-rebase, which prepares @' and then + tries to rebase 1 2 onto @'. So if you ask for an interactive + rebase @' doesn't appear in your commit list. - Note that the construction of p' cannot fail because p' simply + Note that the construction of @' cannot fail because @' 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.) @@ -84,9 +84,9 @@ 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'. +a merge of two `packaging-only' branches from the special merge `@'. (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 +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.) @@ -120,7 +120,7 @@ Consider a non-dgit NMU followed by a dgit NMU: 1 0 00 =XBC% / / - --p--A breakwater + --@--A breakwater / --#--------> upstream @@ -153,7 +153,7 @@ Want to transform this into: 1 0 00 =XBC% / / / / / - --p--A-----B-----------------------C--D + --@--A-----B-----------------------C--D / --#-----------------------------------------> @@ -171,7 +171,7 @@ Want to transform this into: 1 0 00 =XBC% / / / / / - --p--A-----B--------------------p--C--D + --@--A-----B--------------------@--C--D / / --#----------------------- - - / - - -----> / -- cgit v1.2.3