chiark / gitweb /
git-debrebase: some notes about gbp import
[dgit.git] / NOTES.git-debrebase
index aa725b13e77b551b306a93f78882522123637f58..0d7bea84daa3f8f392690d1a70968990749df488 100644 (file)
@@ -1,3 +1,34 @@
+
+#
+#    git-ffqrebase start [BASE]
+#                # records previous HEAD so it can be overwritten
+#                # records base for future git-ffqrebase
+#    git-ffqrebase set-base BASE
+#    git-ffqrebase <git-rebase options>
+#    git-ffqrebase finish
+#    git-ffqrebase status [BRANCH]
+#
+#  refs/ffqrebase-prev/BRANCH    BRANCH may be refs/...; if not it means
+#  refs/ffqrebase-base/BRANCH      refs/heads/BRANCH
+#                               zero, one, or both of these may exist
+#
+# git-debrebase without start, if already started, is willing
+# to strip pseudomerges provided that they overwrite exactly
+# the previous HEAD
+#  xxxx is this right ?  what matters is have we pushed
+#    I think in fact the right answer is:
+#       git-debrebase always strips out pseudomerges from its branch
+#       a pseudomerge is put in at the time we want to push
+#       at that time, we make a pseudomerge of the remote tracking
+#           branch (if raw git) or the dgit view (if dgit)
+#       for raw git git-ffqrebase, do want preciseley to record
+#           value of remote tracking branch or our branch, on start, so we
+#           overwrite only things we intend to
+#  the previous pseudomerge    check for tags and remote branches ?
+
+
+=========
+
 workflow
 
   git-debrebase blah [implies start]       strips pseudomerge(s)
@@ -109,3 +140,31 @@ will-overwrite to the current tip (see rules above, which show that
 this is OK).  Or maybe to the last pseudomerge on the current tip,
 so that the overall result will be series of pseudomerges.
 
+========================================
+
+import from gbp
+
+ inputs:
+   current HEAD (patches-unapplied),
+     this is going to be the base of the old breakwater
+   nominated upstream
+
+ checks:
+   HEAD:<upstream> = upstream:<upstream>
+   upstream..HEAD:<upstream> is empty (overrideable)
+   upstremm:debian is empty (overrideable)
+
+ procedure:
+   construct
+     run gbp pq import to generate pq branch
+     new breakwater is
+       old HEAD
+       commit to remove d/patches
+       breakwater pseudomerge with upstream
+       "rebase" of pq branch, each commit with d/patches stripped
+
+what about dgit view branch ?
+ideally, would make pseudomerge over dgit view
+would need to check that dgit view is actually dgit view of
+  ond of our ancestors
+failing that first push will need --overwrite