Skip to content

Commit 49e5cc5

Browse files
peffgitster
authored andcommitted
t4129: fix racy index when calling chmod after git-add
This patch fixes a racy test failure in t4129. The deletion test added by e95d515 (apply: canonicalize modes read from patches, 2024-08-05) wants to make sure that git-apply does not complain about a non-canonical mode in the patch, even if that mode does not match the working tree file. So it does this: echo content >non-canon && git add non-canon && chmod 666 non-canon && This is wrong, because running chmod will update the ctime on the file, making it stat-dirty and causing git-apply to refuse to apply the patch. But this only happens sometimes, since it depends on the timestamps crossing a second boundary (but it triggers pretty quickly when run with --stress). We can fix this by doing the chmod before updating the index. The order isn't important here, as the mode will be canonicalized to 100644 in the index anyway (in fact, the chmod is not even that important in the first place, since git-apply will only look at the index; I only added it as an extra confirmation that git-apply would not be confused by it). Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent e95d515 commit 49e5cc5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

t/t4129-apply-samemode.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ test_expect_success POSIXPERM 'patch mode for new file is canonicalized' '
153153
test_expect_success POSIXPERM 'patch mode for deleted file is canonicalized' '
154154
test_when_finished "git reset --hard" &&
155155
echo content >non-canon &&
156-
git add non-canon &&
157156
chmod 666 non-canon &&
157+
git add non-canon &&
158158
159159
cat >patch <<-\EOF &&
160160
diff --git a/non-canon b/non-canon

0 commit comments

Comments
 (0)