From 9206ba5d401f83ed00b74a943b5499be5e7dcd8c Mon Sep 17 00:00:00 2001
From: Johannes Schindelin
+
+ As probably everybody agrees, the code to preserve merges is a big mess
+ right now.
+
+ Worse, the whole concept of "pick
+ So I started a major cleanup, which happens to reduce the code very
+ nicely so far.
+
+ It will take a few days to flesh out, I guess, but these are the major
+ ideas of my work:
+
+ pick $sha1Table of contents:
+
Saturday, 24th of January, Anno Domini MMIX, at the hour of the Pig
+
+ Ideas for a major revamp of the --preserve-merges handling in git rebase
+
+
+ will only work on non-merges in the future.
+ merge $sha1 [$sha1...] was $sha1 Merge ...
+ will merge the given list of commits into the current HEAD, for
+ the user's reference and to keep up-to-date what was rewritten,
+ the original merge is shown after the keyword "was" (which is not
+ a valid SHA-1, luckily).
+ goto $sha1
+ will reset the HEAD to the given commit.
+ $sha1'
+ for merge and goto, if a $sha1 ends in a single quote, the
+ rewritten commit is substituted (if there is one).
+
+ Example: +
+
+A - B - - - E + \ / + C - D ++
+ could yield this TODO script: +
+
+ pick A + pick C + pick D + goto A' + pick B + merge D' was E ++
+ This should lead to a much more intuitive user experience. +
+ I am very sorry if somebody actually scripted rebase -i -p (by setting + GIT_EDITOR with a script), but I am very certain that this cleanup is + absolutely necessary to make rebase -i -p useful. +
will only work on non-merges in the future.+merge $sha1 [$sha1...] was $sha1 Merge ...
will merge the given list of commits into the current HEAD, for + the user's reference and to keep up-to-date what was rewritten, + the original merge is shown after the keyword "was" (which is not + a valid SHA-1, luckily).+goto $sha1
will reset the HEAD to the given commit.+$sha1'
for merge and goto, if a $sha1 ends in a single quote, the + rewritten commit is substituted (if there is one).+ +Example: + +
+A - B - - - E + \ / + C - D ++ +could yield this TODO script: + +
+ pick A + pick C + pick D + goto A' + pick B + merge D' was E ++ +This should lead to a much more intuitive user experience. + +I am very sorry if somebody actually scripted ''rebase -i -p'' (by setting +GIT_EDITOR with a script), but I am very certain that this cleanup is +absolutely necessary to make ''rebase -i -p'' useful. -- 2.11.4.GIT