summaryrefslogtreecommitdiff
path: root/mru.h
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2017-01-02 16:27:07 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-01-09 14:57:29 -0800
commit6e98de72c03a5bad5ecab1e328e91ef329ba1f41 (patch)
treecd706d0dd40acfbdb23ff9d855732ad3a122aef3 /mru.h
parentsequencer (rebase -i): write the 'done' file (diff)
downloadtgif-6e98de72c03a5bad5ecab1e328e91ef329ba1f41.tar.xz
sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
This is a huge patch, and at the same time a huge step forward to execute the performance-critical parts of the interactive rebase in a builtin command. Since 'fixup' and 'squash' are not only similar, but also need to know about each other (we want to reduce a series of fixups/squashes into a single, final commit message edit, from the user's point of view), we really have to implement them both at the same time. Most of the actual work is done by the existing code path that already handles the "pick" and the "edit" commands; We added support for other features (e.g. to amend the commit message) in the patches leading up to this one, yet there are still quite a few bits in this patch that simply would not make sense as individual patches (such as: determining whether there was anything to "fix up" in the "todo" script, etc). In theory, it would be possible to reuse the fast-forward code path also for the fixup and the squash code paths, but in practice this would make the code less readable. The end result cannot be fast-forwarded anyway, therefore let's just extend the cherry-picking code path for now. Since the sequencer parses the entire `git-rebase-todo` script in one go, fixup or squash commands without a preceding pick can be reported early (in git-rebase--interactive, we could only report such errors just before executing the fixup/squash). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mru.h')
0 files changed, 0 insertions, 0 deletions