chiark / gitweb /
TODO.BRANCH: Have checked all uses of $split_brain
[dgit.git] / TODO.BRANCH
index 7138c3b541e6f47093e50bfdfe56613713e7541c..7b9bf313bc25161d9f6174e9035c421216695c57 100644 (file)
@@ -1,26 +1,71 @@
-
 Tag rename unfinished business
 (things resulting from searching for `tag' where searching for
  `debiantag' wouldn't find them)
 
- - protocol version 4
-      implies ability to sign new tag (this is already there
-         so simply advertising version 4 will work)
-      needs also new ability to sign old-format tag in split
-         brain way
-
- - many actual tests
-
- - other tag should be [dgit Maintainer-Tag quilt=$quilt-mode]
+ - in dopush (?), we need to sort out synthetic fast forard
+    this should not depend entirely on quilt mode
+    but will always be needed if quiltmode_splitbrain
+     * On push, if ff fixup mode enabled, check debian/changelog,
+       and maybe make fake merge, maybe in dgit view, maybe
+       elsewhere ?
 
 
 Want tests for
+
  - start repo with old tag, push with new tag, run
    "old" dgit to push again with new tag, push again with
    old tag
+
  - rejecting push of same version with one tag when then the other
 
-----------
 
-Provide --gpbpq[=:] options
-Document --quilt=unapplied|gbp|dpm
+Test that, where appropriate, maint view tags are pushed to dgit git repo
+
+
+ * Provide --gpbpq[=:] options
+
+ * Document --quilt=unapplied|gbp|dpm
+
+ * Mention new tag format in debian/changelog
+
+ * Mention new --quilt=* in debian/changelog
+
+ * Test all three new --quilt=unapplied|gbp|dpm
+
+
+ * IN ARCHIVE COPY Consider and implement fast-forward fixup
+
+    - On fetch, check if specified git hash is ff from
+      existing dgit branch, the same way we do for constructed
+      dscs.  The .dsc tells us the git tree but not necessarily
+      the git hash.
+
+    ...ERR MAYBE...
+      
+         complicated there are many branches
+              dgit-repos: refs/dgit/suite
+               archive dsc
+              local; remotes/dgit/dgit/suite
+                         must be ff
+                         may contain dscs
+               local: dgit/suite (not relevant to fetch)
+
+         archive dsc must always be regarded
+              as ff from (or same as) dgit-repos
+               err depending on version number ?
+
+       this code is what needs changing
+               } else {
+           fail "git head (".lrref()."=$lastpush_hash) is not a ".
+               "descendant of archive's .dsc hash ($dsc_hash)";
+       }
+       it just needs to generate the fake merge and set $hash
+       the archive skew stuff is all fine with this
+
+        xxx actually, no, we need to stop from squashing our
+       lrref with + updates
+
+ * Mention in-archive copy fix in debian/changelog
+
+ * Add in-archive-move test case
+