Subject: Re: [PATCH v2] merge-file: correctly open files when in a subdir

From: Junio C Hamano <[email-masked]>
Date: Wed, 11 Feb 2015 10:21:56 -0800

Aleksander Boruch-Gruszecki <[email-masked]>
writes:

>>> @@ -72,6 +72,12 @@ test_expect_success 'works in subdirectory' '
>>>      ( cd dir && git merge-file a.txt o.txt b.txt )
>>>  '
>>>
>>> +mkdir -p dir/deep
>>> +cp new1.txt orig.txt new2.txt dir/deep
>>> +test_expect_success 'accounts for subdirectory when writing' '
>>> +    (cd dir && git merge-file deep/new1.txt deep/orig.txt deep/new2.txt)
>>> +'
>>
>> Interesting.  Makes us wonder why the one before this new one you
>> added did not catch the issue, doesn't it?
>
> The test before the one added by me does work because merge-file
> tries to open "a.txt" for writing in repo root directory, which will create
> a file if it does not exist.

Ahh, this existing test

>>>      ( cd dir && git merge-file a.txt o.txt b.txt )

implicitly expects that dir/a.txt is written, but the broken
implementation writes to a.txt (i.e. outside dir).  But the test
only checks the exit code from the command without making sure that
dir/a.txt is written, it does not notice the breakage.

Thanks, that makes sense and it also makes sense that checking the
resulting content in dir/a.txt would make sense.  Then we many not
need to add a new dir/deep/* test---after all they are checking the
same thing.