+TODO
+ more tests, see "todo" in gdr-editw
+ reference docs
+ git-debrebase(5) data model
+ git-debrebase(1) command line
+ tutorial
+ dgit-maint-debrebase(7)
+ someone should set branch.<name>.mergeOptions to include --ff-only ?
+
+ clean up remains of NOTES and README
+
+ arrange for dgit to automatically stitch on push
-#
# git-ffqrebase start [BASE]
# # records previous HEAD so it can be overwritten
# # records base for future git-ffqrebase
# 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
[git-debrebase breakwater: new upstream NEW-UPSTREAM-VERSION, merge]
[git-debrebase: new upstream NEW-UPSTREAM-VERSION, changelog]
-[git-debrebase: gbp2debrebase, drop patches]
+[git-debrebase convert-from-gbp: drop patches]
[git-debrebase breakwater: declare upstream]
+[git-debrebase pseudomerge: stitch]
+
+[git-debrebase convert-to-gbp: commit patches]
m{^\[git-debrebase (?:\w*-)?upstream combine \.((?: $extra_orig_namepart_re)+)\]}
(optionally, can use some other commit which is ff
from all of the above, eg one of them)
-N. git-debrebase record-ffrebase
+N. git-debrebase [--noop-ok] record-ffq-prev
does what is described above
-2. git-debrebase stitch [--noop-ok]
+2. git-debrebase [--noop-ok] stitch
makes pseudomerge with will-overwrite
deletes will-overwrite
will-overwrite for each ref
refs/heads/FOO
is
- refs/ffrebase/FOO
+ refs/ffq-prev/FOO
========================================
ond of our ancestors
failing that first push will need --overwrite
-should this be called import or gbp2debrebase as it is now ?
-gbp uses "import" oddly but I'm tempted to use it normally here.
+========================================
+
+divergence, merges:
+
+same problem
+ if merge, look at branches before merge
+ generate new combined branch
+ pseudomerge to overwrite merge
+
+current avaiable strategies:
+
+ maybe launder foreign branch
+
+ if foreign branch is nmuish, can rebase it onto ours
+
+ could merge breakwaters (use analyse to find them)
+ merge breakwaters (assuming same upstream)
+ manually construct new patch queue by inspection of
+ the other two patch queues
+
+ instead of manually constructing patch queue, could use
+ gbp pq export and git merge the patch queues
+ (ie work with interdiffs)
+
+ if upstreams are different and one is ahead
+ simply treat that as "ours" and
+ do the work to import changes from the other
+
+ if upstreams have diverged, can
+ resolve somehow to make new upstream
+ do new-upstream on each branch separately
+ now reduced to previously "solved" problem
+
+ in future, auto patch queue merge algorithm
+ determine next patch to apply
+ there are three versions o..O, l..L, r..R
+ we have already constructed m (previous patch or merged breakwater)
+ try using vector calculus in the implied cube and compute
+ multiple ways to check consistency ?