[PATCH 0/4] Beginning of new merge strategy: New API, empty implementation
- From
Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Oct 21, 2020, 13:22 UTC
- Message-ID
- <pull.895.git.git.1603286555.gitgitgadget@gmail.com>
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 environmentMakefile | 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