builtin/maintenance: fix loose objects task emitting pack hash
The "loose-objects" maintenance tasks executes git-pack-objects(1) to pack all loose objects into a new packfile. This command ends up printing the hash of the packfile to stdout though, which clutters the output of `git maintenance run`. Fix this issue by disabling stdout of the child process. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
51a0b8a2a7
commit
8311e3b551
@ -1159,6 +1159,12 @@ static int pack_loose(struct maintenance_run_opts *opts)
|
||||
|
||||
pack_proc.in = -1;
|
||||
|
||||
/*
|
||||
* git-pack-objects(1) ends up writing the pack hash to stdout, which
|
||||
* we do not care for.
|
||||
*/
|
||||
pack_proc.out = -1;
|
||||
|
||||
if (start_command(&pack_proc)) {
|
||||
error(_("failed to start 'git pack-objects' process"));
|
||||
return 1;
|
||||
|
@ -975,4 +975,20 @@ test_expect_success '--detach causes maintenance to run in background' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'repacking loose objects is quiet' '
|
||||
test_when_finished "rm -rf repo" &&
|
||||
git init repo &&
|
||||
(
|
||||
cd repo &&
|
||||
|
||||
test_commit something &&
|
||||
git config set maintenance.gc.enabled false &&
|
||||
git config set maintenance.loose-objects.enabled true &&
|
||||
git config set maintenance.loose-objects.auto 1 &&
|
||||
|
||||
git maintenance run --quiet >out 2>&1 &&
|
||||
test_must_be_empty out
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user