Hi Christophe On 23/09/2022 19:55, Christophe Poucet via GitGitGadget wrote:
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.
Thanks for picking this up, having an evolve command would be a really useful addition to git. I read the final four patches as I was interested to see how a user would use "git change" to track changes to a set of commits. Unfortunately because there are no tests and scant documentation there are no examples of how to do this. Looking at the patches I felt like it would have been helpful to mark them as RFC to indicate that the author is requesting feedback but does not consider them ready for merging.
I'm confused as to why the command is called "change" (which I don't find particularly descriptive) when every patch subject is "evolve". It definitely makes sense to request feedback on a large topic like this before everything is implemented but I'd be nervous of merging the early stages before there is a working evolve command. For an example of a successful multipart topic see https://lore.kernel.org/git/pull.1248.git.1654545325.gitgitgadget@xxxxxxxxx/ Knowing the author of that series the commit messages should also give you a good idea of the level of detail expected.
Best Wishes Phillip
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