built-in add -p: add support for the same config settings as the Perl version
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest10 patches 0 repliesNew
- v310 patches 7 repliesSuperseded
- v29 patches 5 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 9 patches | 9 replies | Superseded |
Changes in v4 from the cover letter
* Reverted that heavy-handed SIGPIPE handling.
* Instead, changed the diffFilter test case to process the standard input instead of ignoring it.
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/10 | t3701: adjust difffilter testt/ | +1 | 0 replies | |
| 2/10 | built-in add -p: support interactive.diffFilteradd-interactive.c add-interactive.h add-patch.c | +48 | 0 replies | |
| 3/10 | built-in add -p: handle diff.algorithmadd-interactive.c add-interactive.h add-patch.c | +9 | 0 replies | |
| 4/10 | terminal: make the code of disable_echo() reusablecompat/ | +15 | 0 replies | |
| 5/10 | terminal: accommodate Git for Windows' default terminalcompat/ | +50 | 0 replies | |
| 6/10 | terminal: add a new function to read a single keystrokecompat/ compat/ | +58 | 0 replies | |
| 7/10 | built-in add -p: respect the `interactive.singlekey` config settingadd-interactive.c add-interactive.h add-patch.c | +20 | 0 replies | |
| 8/10 | built-in add -p: handle Escape sequences in interactive.singlekey modecompat/ | +55 | 0 replies | |
| 9/10 | built-in add -p: handle Escape sequences more efficientlycompat/ | +72 | 0 replies | |
| 10/10 | ci: include the built-in `git add -i` in the `linux-gcc` jobci/ | +1 | 0 replies |
Reviews trailers per patch
None of the 10 patches has a Reviewed-by or Acked-by.
| Patch | SZEDER Gábor | Jeff King |
|---|---|---|
| 1/10 | Helped-by | Helped-by |
| 2/10 | ||
| 3/10 | ||
| 4/10 | ||
| 5/10 | ||
| 6/10 | ||
| 7/10 | ||
| 8/10 | ||
| 9/10 | ||
| 10/10 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v4 00/10] built-in add -p: add support for the same config settings as the Perl 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
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` jobSignature · 1 line
gitgitgadget