]> git.ipfire.org Git - thirdparty/git.git/commit
fast-rebase: demonstrate merge-ort's API via new test-tool command
authorElijah Newren <newren@gmail.com>
Thu, 29 Oct 2020 20:32:13 +0000 (20:32 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Oct 2020 21:05:48 +0000 (14:05 -0700)
commitfe1a21d5267cae88d4312e3595909720717eb31c
treeaf631d211111b4497a9291e6e6e0af4d1d7c05d1
parent47b1e890e3f7ba57e8c5bc364dcb04d8b2dc1c58
fast-rebase: demonstrate merge-ort's API via new test-tool command

Add a new test-tool command named 'fast-rebase', which is a
super-slimmed down and nowhere near as capable version of 'git rebase'.
'test-tool fast-rebase' is not currently planned for usage in the
testsuite, but is here for two purposes:

  1) Demonstrate the desired API of merge-ort.  In particular,
     fast-rebase takes advantage of the separation of the merging
     operation from the updating of the index and working tree, to
     allow it to pick N commits, but only update the index and working
     tree once at the end.  Look for the calls to
     merge_incore_nonrecursive() and merge_switch_to_result().

  2) Provide a convenient benchmark that isn't polluted by the heavy
     disk writing and forking of unnecessary processes that comes from
     sequencer.c and merge-recursive.c.  fast-rebase is not meant to
     replace sequencer.c, just give ideas on how sequencer.c can be
     changed.  Updating sequencer.c with these goals is probably a
     large amount of work; writing a simple targeted command with
     no documentation, less-than-useful help messages, numerous
     limitations in terms of flags it can accept and situations it can
     handle, and which is flagged off from users is a much easier
     interim step.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
t/helper/test-fast-rebase.c [new file with mode: 0644]
t/helper/test-tool.c
t/helper/test-tool.h