diff options
author | Patrick Steinhardt <ps@pks.im> | 2024-08-19 09:48:05 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-08-21 20:33:22 +0200 |
commit | 8311e3b5515ea161c74cfd9b032270c0f459f2b8 (patch) | |
tree | aeedba65744a87d56a9a0ae53c7e2603f8015e57 | |
parent | t7900: exercise detaching via trace2 regions (diff) | |
download | git-8311e3b5515ea161c74cfd9b032270c0f459f2b8.tar.xz git-8311e3b5515ea161c74cfd9b032270c0f459f2b8.zip |
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>
Diffstat (limited to '')
-rw-r--r-- | builtin/gc.c | 6 | ||||
-rwxr-xr-x | t/t7900-maintenance.sh | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/builtin/gc.c b/builtin/gc.c index 13bc0572a3..be75efa17a 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -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; diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh index 18e0bb29d7..abae7a9754 100755 --- a/t/t7900-maintenance.sh +++ b/t/t7900-maintenance.sh @@ -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 |