chiark / gitweb /
git-debrebase: wip notes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 10 Mar 2017 15:34:48 +0000 (15:34 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jun 2018 11:25:49 +0000 (12:25 +0100)
git-debrebase

index 71167e8..ba990e7 100755 (executable)
@@ -20,8 +20,8 @@
 
 # usages:
 #    git-debrebase status
-#    git-debrebase start       # like ffrebase start + debrebase launder
-#    git-debrebase new-upstream [-f] <upstreaminfo>...
+#    git-debrebase start       # like ffqrebase start + debrebase launder
+#    git-debrebase new-upstream [stuff]  # see below
 #    git-debrebase <git-rebase options>  # does debrebase start if necessary
 #
 #    git-debrebase analyse
 # xxx want auto branch names
 # xxx too complicated
 # how about for now
-#    [+]<commit> [<subdir:> [+]<commit>...]
+#    [+]<commit> [<subdir/> [+]<commit>...]
 # ?  plus options
 #     --new-upstream-different-subtrees
+#
+#  automatic case
+#       git-debrebase new-upstream
+#             - previous breakwater merge must be gdr-generated
+#             - orig set is the same as before
+#             - implicitly uses upstream branches according to orig set
+#             - not all upstream branches need be updated
+#             - insists on fast-forward of each branch, unless
+#                  --force (or --force=<subdir>[/])
+#  branch set adjustments
+#       git-debrebase new-upstream --add <subdir>/
+#       git-debrebase new-upstream --rm <subdir>/
+#       git-debrebase new-upstream / [<subdir>/ ...]
+#             - orig set is adjusted
+#             - otherwise like auto (--add is not checked for ffness, obv)
+#             - multiple --add and --rm may be specified
+#             - --add makes new upstream the last contributor
+#  explicit
+#       git-debrebase / [<rootcommitid>] [<subdir>/ [<commitid>] ...]
+#             - orig set is precisely as specified now
+#             - previous breakwater merge is irrelevant
+#             - no fast forward checks
+#  for now only explicit with commitids
+
+    # implicitly uses `upstream'
+#                                     # (or multiple other branches)
+#       git-debrebase new-upstream \
+#             [<subdir>/]=<commitid>
 
 #    UPSTREAM[,[[SUBDIR:]SUBUPSTREAM]
 #    default for SUBDIR: is from previous upstream merge[xxx terminology]
 # when starting must record original start (for ff)
 # and new rebase basis
 #
-#    git-ffrebase start [BASE] # records previous HEAD so it can be overwritten
-#                              # records base for future git-ffrebase
-#    git-ffrebase set-base BASE
-#    git-ffrebase <git-rebase options>
-#    git-ffrebase finish
-#    git-ffrebase status [BRANCH]
+#    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/ffrebase-prev/BRANCH    BRANCH may be refs/...; if not it means
-#  refs/ffrebase-base/BRANCH      refs/heads/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
 
 use strict;