At this stage on the journey to a fully built-in git add, we already have everything we need, including the --interactive and --patch options, as long as the add.interactive.useBuiltin setting is set to true. This config setting is kind of a feature flag that is currently turned off by default, and will be for a while, until we get confident enough that the built-in version does the job, and retire the Perl script. However, the internal add--interactive helper is also used to back the --patch option of git stash, git reset, git checkout and git worktree. This patch series (based on js/add-p-in-c) brings them "online". Johannes Schindelin (7): built-in add -p: prepare for patch modes other than "stage" built-in add -p: implement the "stash" and "reset" patch modes legacy stash -p: respect the add.interactive.usebuiltin setting built-in stash: use the built-in `git add -p` if so configured built-in add -p: implement the "checkout" patch modes built-in add -p: implement the "worktree" patch modes commit --interactive: make it work with the built-in `add -i` add-interactive.c | 2 +- add-interactive.h | 12 +- add-patch.c | 353 ++++++++++++++++++++++++++++++++++++++++---- builtin/add.c | 35 ++++- builtin/commit.c | 8 +- builtin/stash.c | 25 ++-- git-legacy-stash.sh | 2 +- 7 files changed, 388 insertions(+), 49 deletions(-) base-commit: 2e4083198d1508206488af4c82093ceb6cf20f4e Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-174%2Fdscho%2Fother-command-p-in-c-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-174/dscho/other-command-p-in-c-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/174 -- gitgitgadget