archive-tar: report filter start error only once
A missing tar filter is reported by start_command() using error(), but also by its caller, write_tar_filter_archive(), using die(): $ git -c tar.invalid.command=foo archive --format=invalid HEAD error: cannot run foo: No such file or directory fatal: unable to start 'foo' filter: No such file or directory The second message contains all relevant information and even says that the failed command was intended to be used as a filter. Silence the first one because it's redundant. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
parent
63bba4fdd8
commit
1e4ea950f7
@ -498,6 +498,7 @@ static int write_tar_filter_archive(const struct archiver *ar,
|
|||||||
strvec_push(&filter.args, cmd.buf);
|
strvec_push(&filter.args, cmd.buf);
|
||||||
filter.use_shell = 1;
|
filter.use_shell = 1;
|
||||||
filter.in = -1;
|
filter.in = -1;
|
||||||
|
filter.silent_exec_failure = 1;
|
||||||
|
|
||||||
if (start_command(&filter) < 0)
|
if (start_command(&filter) < 0)
|
||||||
die_errno(_("unable to start '%s' filter"), cmd.buf);
|
die_errno(_("unable to start '%s' filter"), cmd.buf);
|
||||||
|
@ -342,6 +342,13 @@ test_expect_success 'only enabled filters are available remotely' '
|
|||||||
test_cmp_bin remote.bar config.bar
|
test_cmp_bin remote.bar config.bar
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'invalid filter is reported only once' '
|
||||||
|
test_must_fail git -c tar.invalid.command= archive --format=invalid \
|
||||||
|
HEAD >out 2>err &&
|
||||||
|
test_must_be_empty out &&
|
||||||
|
test_line_count = 1 err
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'git archive --format=tgz' '
|
test_expect_success 'git archive --format=tgz' '
|
||||||
git archive --format=tgz HEAD >j.tgz
|
git archive --format=tgz HEAD >j.tgz
|
||||||
'
|
'
|
||||||
|
Loading…
Reference in New Issue
Block a user