git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/3] A couple of CI fixes regarding the built-in add --patch

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 30, 2022, 13:54 UTC
Message-ID
<pull.1340.git.1661867664.gitgitgadget@gmail.com>

This is an attempt to address the concern Junio raised in https://lore.kernel.org/git/xmqq7d3gm1bl.fsf@gitster.g/: originally motivated by a test suite failure when running Git's test suite in Visual Studio, this pulls out the signed vs unsigned fix whose implications are potentially much wider than Visual C.

While in that space, I spent the time (which took almost as long as I expected [https://lore.kernel.org/git/nrr2312s-q256-61n7-2843-7r0s817rp432@tzk.qr/]) to craft a semantic patch to scrutinize Git's source code for similar issues (narrator's voice: there were no other instances, what did ya expect?).

To verify the fix, I then worked on a patch to exercise the built-in git add -p in the test suite even when NO_PERL is set, and while developing this patch and validating it, I got really puzzled that the add -p test case in t6132 did not need to be guarded behind a PERL prereq. So this patch series also includes a fix for that.

The story arc that binds all of these patches together is that they all revolve around NO_PERL and CI issues that involve git add --patch.

Note: This patch series is based on ds/github-actions-use-newer-ubuntu (but
probably applies cleanly even on maint) because I tried to develop a
semantic patch to fix similar issues in the code base. However, I've since
run into what looks like a bug in Coccinelle
[https://github.com/coccinelle/coccinelle/issues/284]. My latest version of
that semantic patch looks like this, but I stopped when running it on Git's
source code triggered the bug for 66 of Git's .c files:

@@ type T = { unsigned int }; T:n b; type S != { unsigned int, size_t }; S s; binary operator o != { &&, || }; @@ -s o b +s o (S)b

@@ type T = { unsigned int }; T:n b; type S != { unsigned int, size_t }; S s; binary operator o != { &&, || }; @@ -b o s +(S)b o s

Johannes Schindelin (3):
  add -p: avoid ambiguous signed/unsigned comparison
  t3701: test the built-in `add -i` regardless of NO_PERL
  t6132(NO_PERL): do not run the scripted `add -p`
 add-patch.c                 | 2 +-
 t/t3701-add-interactive.sh  | 4 ++--
 t/t6132-pathspec-exclude.sh | 6 +++++-
 3 files changed, 8 insertions(+), 4 deletions(-)
base-commit: ef46584831268a83591412a33783caf866867482
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1340%2Fdscho%2Fbuilt-in-add-i-does-not-need-perl-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1340/dscho/built-in-add-i-does-not-need-perl-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1340
-- 
gitgitgadget
Next: Johannes Schindelin via GitGitGadget
Message 1 of 15 in “A couple of CI fixes regarding the built-in add --patch”
  1. 0/3 A couple of CI fixes regarding the built-in add --patchJohannes Schindelin via GitGitGadget, Aug 30, 2022
  2. 1/3 add -p: avoid ambiguous signed/unsigned comparisonJohannes Schindelin via GitGitGadget, Aug 30, 2022
  3. Junio C HamanoAug 30, 2022
  4. 2/3 t3701: test the built-in `add -i` regardless of NO_PERLJohannes Schindelin via GitGitGadget, Aug 30, 2022
  5. Jeff KingAug 30, 2022
  6. Johannes SchindelinAug 30, 2022
  7. Junio C HamanoAug 30, 2022
  8. 3/3 t6132(NO_PERL): do not run the scripted `add -p`Johannes Schindelin via GitGitGadget, Aug 30, 2022
  9. validating signed/unsigned comparisons with Coccinelle, was Re: [PATCH 0/3] A couple of CI fixes regarding the built-in add --patchJohannes Schindelin, Aug 30, 2022
  10. Phillip WoodAug 30, 2022
  11. Johannes SchindelinAug 30, 2022
  12. Junio C HamanoAug 30, 2022
  13. Junio C HamanoAug 30, 2022
  14. Jeff KingAug 30, 2022
  15. Phillip WoodAug 30, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.