Subject: Re: [PATCH 4/6] t6423: fix missed staging of file in testcases 12i,12j,12k

From: Patrick Steinhardt <[email-masked]>
Date: Fri, 1 Aug 2025 10:30:58 +0200

On Tue, Jul 22, 2025 at 03:23:09PM +0000, Elijah Newren via GitGitGadget wrote:
> From: Elijah Newren <[email-masked]>
> 
> Commit 806f83287f8d (t6423: test directory renames causing
> rename-to-self, 2021-06-30) introduced testcase 12i-12k but omitted
> staging one of the files and copy-pasted that mistake to the other
> tests.  This means the merge runs with an unstaged change, even though
> that isn't related to what is being tested and makes the test look more
> complicated than it is.
> 
> The cover letter for the series associated with the above commit noted

It might be a good idea to provide the message ID of that cover letter.

> that these testcases triggered two bugs in merge-recursive but only one
> in merge-ort; in merge-recursive these testcases also triggered a
> silent deletion of the file in question when it shouldn't be deleted.
> What I didn't realize at the time was that the deletion bug in merge-ort
> was merely being sidestepped by the "relevant renames" optimization but
> can actually be triggered.  A subsequent commit will deal with that
> additional bug, but it was complicated by the mistaken forgotten
> staging, so this commit first fixes that issue.

Okay.

> diff --git a/t/t6423-merge-rename-directories.sh b/t/t6423-merge-rename-directories.sh
> index 69de7a3b84af..c2032eb6cfa1 100755
> --- a/t/t6423-merge-rename-directories.sh
> +++ b/t/t6423-merge-rename-directories.sh
> @@ -5114,7 +5117,7 @@ test_expect_failure '12n: Directory rename transitively makes rename back to sel
>  		grep "CONFLICT (file location).*should perhaps be moved" out &&
>  
>  		# Should have 1 entry for hello, and 1 for world
> -		test_stdout_line_count = 2 git ls-files -s &&
> +		test_stdout_line_count = 3 git ls-files -s &&
>  		test_stdout_line_count = 1 git ls-files -s hello &&
>  		test_stdout_line_count = 2 git ls-files -s world
>  	)

Should we also explicitly check `git ls-files -s baz`?

Patrick