In this series, I try to show the new merge API I have developed in merge-ort and show how it differs from that provided by merge-recursive. I do this in four steps, each corresponding to a patch: * Provide the new merge-ort.h header file and an empty die-immediately implementation * Provide new merge-ort-wrappers.[ch] files, showing how to implement the old API using the new API. The wrappers make it easy to convert existing callsites, too. * Provide a demonstration of the flexibility of the new API and its separation of merging steps and updating the index/worktree steps, with a "fast-rebase". [Doesn't yet function since merge-ort.c is still an empty die-immediately implementation] * Provide the changes to merge, rebase, revert, and cherry-pick so that with an environment variable or config option the new or old backend can be called. My next patch series will focus on testsuite changes needed to simultaneously support both merge backends, keyed off an environment variable (thus related to and building on patch 4). Let me know if I'm submitting series too close together or otherwise need to tweak how I'm sending these out... Elijah Newren (4): merge-ort: barebones API of new merge strategy with empty implementation merge-ort-wrappers: new convience wrappers to mimic the old merge API fast-rebase: demonstrate merge-ort's API via temporary/hidden command merge,rebase,revert: select ort or recursive by config or environment Makefile | 3 + builtin.h | 1 + builtin/fast-rebase.c | 210 ++++++++++++++++++++++++++++++++++++++++++ builtin/merge.c | 26 +++++- builtin/rebase.c | 9 +- builtin/revert.c | 2 + git.c | 1 + merge-ort-wrappers.c | 62 +++++++++++++ merge-ort-wrappers.h | 25 +++++ merge-ort.c | 52 +++++++++++ merge-ort.h | 49 ++++++++++ sequencer.c | 71 +++++++++++--- 12 files changed, 496 insertions(+), 15 deletions(-) create mode 100644 builtin/fast-rebase.c create mode 100644 merge-ort-wrappers.c create mode 100644 merge-ort-wrappers.h create mode 100644 merge-ort.c create mode 100644 merge-ort.h base-commit: 69986e19ffcfb9af674ae5180689ab7bbf92ed28 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-895%2Fnewren%2Fort-api-with-empty-implementation-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-895/newren/ort-api-with-empty-implementation-v1 Pull-Request: https://github.com/git/git/pull/895 -- gitgitgadget