Subject: Re: [PATCH v2 1/3] t6423: add tests of dual directory rename plus add/add conflict

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 30 Jun 2022 12:21:29 +0200

On Thu, Jun 30 2022, Elijah Newren via GitGitGadget wrote:

> From: Elijah Newren <[email-masked]>

> +test_setup_12l () {
> +	test_create_repo 12l_$1 &&

Can & should just be "git init", see f0d4d398e28 (test-lib: split up and
deprecate test_create_repo(), 2021-05-10).

> +	(
> +		cd 12l_$1 &&
> +
> +		mkdir -p sub1 sub2

The "-p" here isn't needed, you're not creating recursive directories. 

> +		git ls-files -s >out &&
> +		test_line_count = 5 out &&

Can't this just use test_stdout_line_count? Except...

> +
> +		git rev-parse >actual \
> +			:0:sub3/file :0:sub3/newfile :0:sub3/sub2/other \
> +			:2:sub1/sub2/new_add_add_file \
> +			:3:sub1/sub2/new_add_add_file &&
> +		git rev-parse >expect \
> +			O:sub1/file  B:sub1/newfile O:sub2/other \
> +			A:sub2/new_add_add_file \
> +			B:sub1/sub2/new_add_add_file &&
> +		test_cmp expect actual &&
> +
> +		git ls-files -o >actual &&
> +		test_write_lines actual expect out >expect &&
> +		test_cmp expect actual

This test seems a bit odd, here we're just checking that we've created
scratch files for the internal use of our test, why is it important that
we have an "out" file, when the only reason we have it is because we
needed it for checking the "ls-files" line count above?

> +	)
> +'
> +
> +test_expect_merge_algorithm failure failure '12l (A into B): Rename into each other + add/add conflict' '
> +	test_setup_12l AintoB &&
> +	(
> +		cd 12l_AintoB &&
> +
> +		git checkout -q B^0 &&
> +
> +		test_must_fail git -c merge.directoryRenames=true merge -s recursive A^0 &&
> +
> +		git ls-files -s >out &&
> +		test_line_count = 5 out &&

ditto.

> +		git rev-parse >actual \
> +			:0:sub3/file :0:sub3/newfile :0:sub3/sub2/other \
> +			:2:sub1/sub2/new_add_add_file \
> +			:3:sub1/sub2/new_add_add_file &&
> +		git rev-parse >expect \
> +			O:sub1/file  B:sub1/newfile O:sub2/other \
> +			B:sub1/sub2/new_add_add_file \
> +			A:sub2/new_add_add_file &&
> +		test_cmp expect actual &&
> +
> +		git ls-files -o >actual &&
> +		test_write_lines actual expect out >expect &&

ditto