Add an optional "About" box
[git/dscho.git] / source-1232828715.txt
blob9ba4d9059e2fcb1474f0f7cc57ba89c6b7017906
1 Ideas for a major revamp of the ''--preserve-merges'' handling in ''git rebase''
3 As probably everybody agrees, the code to preserve merges is a big mess 
4 right now.
6 Worse, the whole concept of "pick <merge-sha1>" just does not fly well.
8 So I started a _major_ cleanup, which happens to reduce the code very 
9 nicely so far.
11 It will take a few days to flesh out, I guess, but these are the major 
12 ideas of my work:
14 <b>pick $sha1</b><br>
15 <blockquote>will only work on non-merges in the future.</blockquote>
16 <b>merge $sha1 [$sha1...] was $sha1 Merge ...</b><br>
17 <blockquote>will merge the given list of commits into the current HEAD, for 
18         the user's reference and to keep up-to-date what was rewritten, 
19         the original merge is shown after the keyword "was" (which is not 
20         a valid SHA-1, luckily).</blockquote>
21 <b>goto $sha1</b><br>
22 <blockquote>will reset the HEAD to the given commit.</blockquote>
23 <b>$sha1'</b><br>
24 <blockquote>for merge and goto, if a $sha1 ends in a single quote, the 
25         rewritten commit is substituted (if there is one).</blockquote>
27 Example:
29 <pre>
30 A - B - - - E 
31   \       /
32     C - D
33 </pre>
35 could yield this TODO script:
37 <pre>
38         pick A
39         pick C
40         pick D
41         goto A'
42         pick B
43         merge D' was E
44 </pre>
46 This should lead to a much more intuitive user experience.
48 I am very sorry if somebody actually scripted ''rebase -i -p'' (by setting 
49 GIT_EDITOR with a script), but I am very certain that this cleanup is 
50 absolutely necessary to make ''rebase -i -p'' useful.