I'm reviving the original git evolve work that was started by sxenos@xxxxxxxxxx (https://public-inbox.org/git/20190215043105.163688-1-sxenos@xxxxxxxxxx/) This work is intended to make it easier to deal with stacked changes. The following set of patches introduces the design doc on the evolve command as well as the basics of the git change command. Chris Poucet (4): sha1-array: implement oid_array_readonly_contains ref-filter: add the metas namespace to ref-filter evolve: add delete command evolve: add documentation for `git change` Stefan Xenos (6): technical doc: add a design doc for the evolve command evolve: add support for parsing metacommits evolve: add the change-table structure evolve: add support for writing metacommits evolve: implement the git change command evolve: add the git change list command .gitignore | 1 + Documentation/git-change.txt | 55 ++ Documentation/technical/evolve.txt | 1051 ++++++++++++++++++++++++++++ Makefile | 4 + builtin.h | 1 + builtin/change.c | 342 +++++++++ change-table.c | 179 +++++ change-table.h | 132 ++++ git.c | 1 + metacommit-parser.c | 110 +++ metacommit-parser.h | 19 + metacommit.c | 404 +++++++++++ metacommit.h | 58 ++ oid-array.c | 12 + oid-array.h | 7 + ref-filter.c | 10 +- ref-filter.h | 8 +- t/helper/test-oid-array.c | 6 + t/t0064-oid-array.sh | 22 + 19 files changed, 2418 insertions(+), 4 deletions(-) create mode 100644 Documentation/git-change.txt create mode 100644 Documentation/technical/evolve.txt create mode 100644 builtin/change.c create mode 100644 change-table.c create mode 100644 change-table.h create mode 100644 metacommit-parser.c create mode 100644 metacommit-parser.h create mode 100644 metacommit.c create mode 100644 metacommit.h base-commit: 4b79ee4b0cd1130ba8907029cdc5f6a1632aca26 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1356%2Fpoucet%2Fevolve-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1356/poucet/evolve-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1356 -- gitgitgadget