pr-175/dscho/add-p-in-c-config-settings-v4
tagged this
14 Jan 18:43
… version This is the final leg of the journey to a fully built-in git add: the git add -i and git add -p modes were re-implemented in C, but they lacked support for a couple of config settings. The one that sticks out most is the interactive.singleKey setting: it was particularly hard to get to work, especially on Windows. It also seems to be the setting that is incomplete already in the Perl version of the interactive add command: while the name of the config setting suggests that it applies to all of the interactive add, including the main loop of git add --interactive and to the file selections in that command, it does not. Only the git add --patch mode respects that setting. As it is outside the purpose of the conversion of git-add--interactive.perl to C, we will leave that loose end for some future date. Changes since v3: * Reverted that heavy-handed SIGPIPE handling. * Instead, changed the diffFilter test case to process the standard input instead of ignoring it. (The range diff between v2 and v4 actually only shows the new patch 1/10 "t3701: adjust difffilter test".) Changes since v2: * Fixed the SIGPIPE issue pointed out by Gábor Szeder. Changes since v1: * Fixed the commit message where a copy/paste fail made it talk about another GIT_TEST_* variable than the GIT_TEST_ADD_I_USE_BUILTIN one. Johannes Schindelin (10): t3701: adjust difffilter test built-in add -p: support interactive.diffFilter built-in add -p: handle diff.algorithm terminal: make the code of disable_echo() reusable terminal: accommodate Git for Windows' default terminal terminal: add a new function to read a single keystroke built-in add -p: respect the `interactive.singlekey` config setting built-in add -p: handle Escape sequences in interactive.singlekey mode built-in add -p: handle Escape sequences more efficiently ci: include the built-in `git add -i` in the `linux-gcc` job add-interactive.c | 19 +++ add-interactive.h | 4 + add-patch.c | 57 ++++++++- ci/run-build-and-tests.sh | 1 + compat/terminal.c | 249 ++++++++++++++++++++++++++++++++++++- compat/terminal.h | 3 + t/t3701-add-interactive.sh | 2 +- 7 files changed, 326 insertions(+), 9 deletions(-) base-commit: c480eeb574e649a19f27dc09a994e45f9b2c2622 Submitted-As: https://lore.kernel.org/git/pull.175.v4.git.1579027433.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.175.git.1576968120.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.175.v2.git.1577275020.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.175.v3.git.1578904171.gitgitgadget@gmail.com
Assets 2
-
2020-01-14T18:43:53Z -
2020-01-14T18:43:53Z - Loading