On Wed, Apr 17 2019, Phillip Wood wrote: > On 16/04/2019 15:51, Ævar Arnfjörð Bjarmason wrote: >> >> On Tue, Apr 16 2019, Junio C Hamano wrote: >> >>> * pw/rebase-i-internal-rfc (2019-03-21) 12 commits >>> - rebase -i: run without forking rebase--interactive >>> - rebase: use a common action enum >>> - rebase -i: use struct rebase_options in do_interactive_rebase() >>> - rebase -i: use struct rebase_options to parse args >>> - rebase -i: use struct object_id for squash_onto >>> - rebase -i: use struct commit when parsing options >>> - rebase -i: remove duplication >>> - rebase -i: combine rebase--interactive.c with rebase.c >>> - rebase: use OPT_RERERE_AUTOUPDATE() >>> - rebase: rename write_basic_state() >>> - sequencer: always discard index after checkout >>> - Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal-rfc >>> (this branch uses ag/sequencer-reduce-rewriting-todo.) >>> >>> The internal implementation of "git rebase -i" has been updated to >>> avoid forking a separate "rebase--interactive" process. >>> >>> Comments? Is this ready? >> >> I gave this some stress testing/review in your infra, works for me so >> far, and a good performance improvement. >> >> My only problem with it is that the commit message doesn't note just >> quite how awesome it is, but I can live with that :) > > Thanks for testing this, I'll send a re-roll that mentions the > performance improvement. I'm still surprised by it, are you seeing an > improvement in production as well as on the perf test you mentioned > before? I wonder if some of the improvement is due to > ag/sequencer-reduce-rewriting-todo if that wasn't in master when you > ran the benchmarks but I haven't had time to investigate. Just the perf tests. I don't think it'll have much noticeable impact on a typical rebase, but everything helps...