Exit codes are lost due to piping: "git ... | <command>" Fix these issues using the intermediate step of writing output to file. Signed-off-by: Edwin Fernando <edwinfernando734@xxxxxxxxx> --- Apply my changes on top of the latest commit in upstream history. Test 76 in t3701 fails. This commit breaks the test: a9f4a01760 (Merge branch 'jk/add-p-unmerged-fix', 2023-03-19) Identified by checking out commits in: "git log --oneline -- t/t3701-add-interactive.sh" I don't know if it is normal to have broken tests in the main repository. t/t3701-add-interactive.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index 3982b6b49d..b8291206a0 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -286,8 +286,10 @@ test_expect_success FILEMODE 'patch does not affect mode' ' echo content >>file && chmod +x file && printf "n\\ny\\n" | git add -p && - git show :file | grep content && - git diff file | grep "new mode" + git show :file >show && + grep content show && + git diff file >diff && + grep "new mode" diff ' test_expect_success FILEMODE 'stage mode but not hunk' ' @@ -295,8 +297,10 @@ test_expect_success FILEMODE 'stage mode but not hunk' ' echo content >>file && chmod +x file && printf "y\\nn\\n" | git add -p && - git diff --cached file | grep "new mode" && - git diff file | grep "+content" + git diff --cached file >diff && + grep "new mode" diff && + git diff file >diff && + grep "+content" diff ' -- 2.40.0