> 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. Thanks for the feedback, I'll mark them as RFC. > 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. The `git change` command is a lower-level command used to directly manipulate changes, as a user you should not be engaging with those. What is missing is the more complicated `git evolve` command. I admit that I don't yet know how to implement that or the changes that need to happen to all create/modify commands. Still learning git, so apologies for any mistakes and thank you for your consideration - simply chris On Sun, Sep 25, 2022 at 10:40 AM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote: > > 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