chiark / gitweb /
git-debrebase: make cfg optionally take $optional (nfc)
[dgit.git] / NOTES.git-debrebase
index 0310f968dea2a2b0a085b4d40f17236318d54972..8aed2ff28887803b6481e75e4a2997ca59221a65 100644 (file)
@@ -8,9 +8,7 @@
 #    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
+#  refs/ffq-prev/REF    relates to refs/REF
 #
 # git-debrebase without start, if already started, is willing
 # to strip pseudomerges provided that they overwrite exactly
@@ -176,6 +174,17 @@ so that the overall result will be series of pseudomerges.
 
 So, pm handling specifics:
 
+strategy is to avoid making needless pseudomerges
+pseudomerges that exist will be preserved
+(by being included in will-overwrite)
+
+This is good because the presence of a pseudomerge means we know we
+want to keep it; and that allows explicit control over history detail
+level.
+
+It does mean we must avoid making the pseudomerges unnecessarily.
+They should be made just before (ideally, part of) dgit push.
+
 1. git-debrebase [-i etc.]
 
      should:
@@ -192,16 +201,38 @@ So, pm handling specifics:
 
         set will-overwrite to something which is ff from
           all above branches
-        either 1. one of them or, if there is no maximal one,
-        2. our tip
 
-        ? optionally, according to config always take tip anyway
+        we use our tip, as discussed above
+        (optionally, can use some other commit which is ff
+         from all of the above, eg one of them)
 
-2. git-debrebase stitch
+N. git-debrebase [--noop-ok] record-ffq-prev
+
+     does what is described above
+
+2. git-debrebase [--noop-ok] stitch
 
     makes pseudomerge with will-overwrite
     deletes will-overwrite
 
+    we will teach dgit to do
+       git-debrebase stitch
+
+3. git-debrebase push
+
+    like git push only does stitch first
+    ??? command line parsing!
+
+4. git-debrebase release
+
+    stiches, finalises changelog, signs tags, pushes everything
+    for the future, when there is some automatic builder
+
+will-overwrite for each ref
+    refs/heads/FOO
+is
+    refs/ffq-prev/FOO
+
 ========================================
 
 import from gbp