From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: [PATCH v4 00/10] built-in add -p: add support for the same config settings as the Perl version
Date: Tue, 14 Jan 2020 18:43:43 +0000 [thread overview]
Message-ID: <pull.175.v4.git.1579027433.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.175.v3.git.1578904171.gitgitgadget@gmail.com>
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
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-175%2Fdscho%2Fadd-p-in-c-config-settings-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-175/dscho/add-p-in-c-config-settings-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/175
Range-diff vs v3:
1: 5e258a8d2b < -: ---------- built-in add -i/-p: treat SIGPIPE as EOF
-: ---------- > 1: e12df77e8a t3701: adjust difffilter test
2: 2a5951ecfe ! 2: 413a87bd79 built-in add -p: support interactive.diffFilter
@@ -35,9 +35,9 @@
strbuf_release(&header);
prefix_item_list_clear(&commands);
+ clear_add_i_state(&s);
- sigchain_pop(SIGPIPE);
return res;
+ }
diff --git a/add-interactive.h b/add-interactive.h
--- a/add-interactive.h
@@ -123,14 +123,13 @@
strbuf_release(&s.plain);
strbuf_release(&s.colored);
+ clear_add_i_state(&s.s);
- sigchain_pop(SIGPIPE);
return -1;
}
+
@@
strbuf_release(&s.buf);
strbuf_release(&s.plain);
strbuf_release(&s.colored);
+ clear_add_i_state(&s.s);
- sigchain_pop(SIGPIPE);
return 0;
}
3: a2bce01818 = 3: 062c624547 built-in add -p: handle diff.algorithm
4: be40a37c0c = 4: 09a8946303 terminal: make the code of disable_echo() reusable
5: 233f23791c = 5: a81304cb76 terminal: accommodate Git for Windows' default terminal
6: 74593b5115 = 6: 8d9c703f3b terminal: add a new function to read a single keystroke
7: 197fe1e14a ! 7: 8ed4487ae4 built-in add -p: respect the `interactive.singlekey` config setting
@@ -48,9 +48,9 @@
--- a/add-patch.c
+++ b/add-patch.c
@@
+ #include "pathspec.h"
#include "color.h"
#include "diff.h"
- #include "sigchain.h"
+#include "compat/terminal.h"
enum prompt_mode_type {
8: 9ab381d539 = 8: cdc609f8fa built-in add -p: handle Escape sequences in interactive.singlekey mode
9: bdb6268b8b = 9: 80b0f2528d built-in add -p: handle Escape sequences more efficiently
10: c4195969a6 = 10: 7ab7ec62d0 ci: include the built-in `git add -i` in the `linux-gcc` job
--
gitgitgadget
next prev parent reply other threads:[~2020-01-14 18:44 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-21 22:41 [PATCH 0/9] built-in add -p: add support for the same config settings as the Perl version Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 1/9] built-in add -p: support interactive.diffFilter Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 2/9] built-in add -p: handle diff.algorithm Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 3/9] terminal: make the code of disable_echo() reusable Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 4/9] terminal: accommodate Git for Windows' default terminal Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 5/9] terminal: add a new function to read a single keystroke Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 6/9] built-in add -p: respect the `interactive.singlekey` config setting Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 7/9] built-in add -p: handle Escape sequences in interactive.singlekey mode Johannes Schindelin via GitGitGadget
2019-12-21 22:41 ` [PATCH 8/9] built-in add -p: handle Escape sequences more efficiently Johannes Schindelin via GitGitGadget
2019-12-21 22:42 ` [PATCH 9/9] ci: include the built-in `git add -i` in the `linux-gcc` job Johannes Schindelin via GitGitGadget
2019-12-21 22:53 ` SZEDER Gábor
2019-12-25 11:56 ` Johannes Schindelin
2019-12-22 0:11 ` Junio C Hamano
2019-12-25 11:57 ` Johannes Schindelin
2019-12-24 18:23 ` [PATCH 0/9] built-in add -p: add support for the same config settings as the Perl version Junio C Hamano
2019-12-24 18:39 ` Junio C Hamano
2019-12-25 8:46 ` Simon Ruderich
2019-12-25 12:09 ` Johannes Schindelin
2019-12-25 12:02 ` Johannes Schindelin
2019-12-25 11:56 ` [PATCH v2 " Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 1/9] built-in add -p: support interactive.diffFilter Johannes Schindelin via GitGitGadget
2020-01-07 22:57 ` SZEDER Gábor
2020-01-13 6:47 ` Johannes Schindelin
2019-12-25 11:56 ` [PATCH v2 2/9] built-in add -p: handle diff.algorithm Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 3/9] terminal: make the code of disable_echo() reusable Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 4/9] terminal: accommodate Git for Windows' default terminal Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 5/9] terminal: add a new function to read a single keystroke Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 6/9] built-in add -p: respect the `interactive.singlekey` config setting Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 7/9] built-in add -p: handle Escape sequences in interactive.singlekey mode Johannes Schindelin via GitGitGadget
2019-12-25 11:56 ` [PATCH v2 8/9] built-in add -p: handle Escape sequences more efficiently Johannes Schindelin via GitGitGadget
2019-12-25 11:57 ` [PATCH v2 9/9] ci: include the built-in `git add -i` in the `linux-gcc` job Johannes Schindelin via GitGitGadget
2019-12-26 20:48 ` Derrick Stolee
2020-01-01 22:10 ` Johannes Schindelin
2019-12-26 20:45 ` [PATCH v2 0/9] built-in add -p: add support for the same config settings as the Perl version Junio C Hamano
2020-01-13 8:29 ` [PATCH v3 00/10] " Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 01/10] built-in add -i/-p: treat SIGPIPE as EOF Johannes Schindelin via GitGitGadget
2020-01-13 17:04 ` SZEDER Gábor
2020-01-13 18:33 ` Jeff King
2020-01-15 18:32 ` Junio C Hamano
2020-01-15 19:03 ` Jeff King
2020-01-14 12:47 ` Johannes Schindelin
2020-01-17 14:32 ` SZEDER Gábor
2020-01-17 18:58 ` Jeff King
2020-01-13 8:29 ` [PATCH v3 02/10] built-in add -p: support interactive.diffFilter Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 03/10] built-in add -p: handle diff.algorithm Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 04/10] terminal: make the code of disable_echo() reusable Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 05/10] terminal: accommodate Git for Windows' default terminal Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 06/10] terminal: add a new function to read a single keystroke Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 07/10] built-in add -p: respect the `interactive.singlekey` config setting Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 08/10] built-in add -p: handle Escape sequences in interactive.singlekey mode Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 09/10] built-in add -p: handle Escape sequences more efficiently Johannes Schindelin via GitGitGadget
2020-01-13 8:29 ` [PATCH v3 10/10] ci: include the built-in `git add -i` in the `linux-gcc` job Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` Johannes Schindelin via GitGitGadget [this message]
2020-01-14 18:43 ` [PATCH v4 01/10] t3701: adjust difffilter test Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 02/10] built-in add -p: support interactive.diffFilter Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 03/10] built-in add -p: handle diff.algorithm Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 04/10] terminal: make the code of disable_echo() reusable Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 05/10] terminal: accommodate Git for Windows' default terminal Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 06/10] terminal: add a new function to read a single keystroke Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 07/10] built-in add -p: respect the `interactive.singlekey` config setting Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 08/10] built-in add -p: handle Escape sequences in interactive.singlekey mode Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 09/10] built-in add -p: handle Escape sequences more efficiently Johannes Schindelin via GitGitGadget
2020-01-14 18:43 ` [PATCH v4 10/10] ci: include the built-in `git add -i` in the `linux-gcc` job Johannes Schindelin via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.175.v4.git.1579027433.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.