Re: [PATCH] diff: add test showing regression to --relative
- Date: Wed, 6 Dec 2017 17:21:57 -0800
- From: Jacob Keller <jacob.keller@xxxxxxxxx>
- Subject: Re: [PATCH] diff: add test showing regression to --relative
On Wed, Dec 6, 2017 at 5:04 PM, Jeff King <peff@xxxxxxxx> wrote:
> On Wed, Dec 06, 2017 at 04:35:17PM -0800, Jacob Keller wrote:
>> Subject: [PATCH] diff: add test showing regression to --relative
> Since we'd hopefully not ever merge that regression, I think this patch
> ought to stand on its own. In which case it probably wants to say
> something like:
> diff: test --relative without a prefix
> We already test "diff --relative=subdir", but not that
> "--relative" by itself should use the current directory as
> its prefix.
Yea, I wasn't sure what the actual status of the changes were though,
so I thought I'd send the actual fix I did. It's definitely up to
Christian in determining what he thinks the best path forward is.
>> diff --git a/t/t4045-diff-relative.sh b/t/t4045-diff-relative.sh
>> index 3950f5034d31..41e4f59b2ffb 100755
>> --- a/t/t4045-diff-relative.sh
>> +++ b/t/t4045-diff-relative.sh
>> @@ -70,4 +70,9 @@ for type in diff numstat stat raw; do
>> check_$type dir/file2 --relative=sub
>> +cd subdir
>> +for type in diff numstat stat raw; do
>> + check_$type file2 --relative
> We should avoid moving the cwd of the whole test script in
> case we add tests later. Normally we'd do the cd inside a
> subshell, but that's complicated by the wrapper (we wouldn't
> want to increment the test counter just inside the subshell,
> for instance).
> Adding "cd .." is the smallest thing we could do to fix
> that. But I think the more robust solution is to actually
> teach the check_* helper about doing the "cd" inside the
> test_expect block. Or just pushing the helper down into the
> test block and living with repeating the
> "test_expect_success" parts for each call.
Yea, I tried cd inside the subshell and it didn't work, so I did this
as the quicker solution.
I think the best method would be to update the check_* helper
functions to take a dir parameter, and use that to do git -C "dir"
when calling the diff commands.