Subject: Re: [PATCH 22/48] merge-recursive: Fix sorting order and directory change assumptions

From: Johannes Sixt <[email-masked]>
Date: Mon, 11 Jul 2011 09:04:37 +0200

Am 6/8/2011 9:30, schrieb Elijah Newren:
>  test_expect_success 'modify/delete + directory/file conflict; other way' '
> +	# Yes, we really need the double reset since "letters" appears as
> +	# both a file and a directory.
> +	git reset --hard &&
>  	git reset --hard &&
>  	git clean -f &&
>  	git checkout modify^0 &&
> +
>  	test_must_fail git merge delete &&
>  
> -	test 3 = $(git ls-files -s | wc -l) &&
> -	test 2 = $(git ls-files -u | wc -l) &&
> -	test 1 = $(git ls-files -o | wc -l) &&
> +	test 5 -eq $(git ls-files -s | wc -l) &&
> +	test 4 -eq $(git ls-files -u | wc -l) &&
> +	test 1 -eq $(git ls-files -o | wc -l) &&
>  
>  	test -f letters/file &&
> +	test -f letters.txt &&
>  	test -f letters~HEAD
>  '

A heads-up: This test case fails here on Windows. The messages produced are:

Merging:
63e2d2b modified
virtual delete
found 1 common ancestor(s):
e6b31cd initial
CONFLICT (modify/delete): letters deleted in delete and modified in HEAD.
Version HEAD of letters left in tree at letters~HEAD.
Adding letters/file
error: failed to create path 'letters/file': perhaps a D/F conflict?
Auto-merging letters.txt
CONFLICT (add/add): Merge conflict in letters.txt
Automatic merge failed; fix conflicts and then commit the result.

whereas they are on Linux:

Merging:
274ce87 modified
virtual delete
found 1 common ancestor(s):
343abf7 initial
Removing letters to make room for subdirectory; may re-add later.
Adding letters/file
CONFLICT (modify/delete): letters deleted in delete and modified in HEAD.
Version HEAD of letters left in tree at letters~HEAD.
Auto-merging letters.txt
CONFLICT (add/add): Merge conflict in letters.txt
Automatic merge failed; fix conflicts and then commit the result.

As you can see, "Removing letters..." is missing on Windows, and the file
'letters' is indeed left in the working tree. Any quick ideas where to
begin debugging this?

-- Hannes