refs/reftable: print errors on compaction failure
When git-pack-refs(1) fails in the reftable backend we end up printing no error message at all, leaving the caller puzzled as to why compaction has failed. Fix this. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
a2f711ade0
commit
4ccf7060d8
|
@ -1221,8 +1221,12 @@ static int reftable_be_pack_refs(struct ref_store *ref_store,
|
||||||
stack = refs->main_stack;
|
stack = refs->main_stack;
|
||||||
|
|
||||||
ret = reftable_stack_compact_all(stack, NULL);
|
ret = reftable_stack_compact_all(stack, NULL);
|
||||||
if (ret)
|
if (ret < 0) {
|
||||||
|
ret = error(_("unable to compact stack: %s"),
|
||||||
|
reftable_error_str(ret));
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
ret = reftable_stack_clean(stack);
|
ret = reftable_stack_clean(stack);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -375,6 +375,18 @@ test_expect_success 'pack-refs: compacts tables' '
|
||||||
test_line_count = 1 repo/.git/reftable/tables.list
|
test_line_count = 1 repo/.git/reftable/tables.list
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'pack-refs: compaction raises locking errors' '
|
||||||
|
test_when_finished "rm -rf repo" &&
|
||||||
|
git init repo &&
|
||||||
|
test_commit -C repo A &&
|
||||||
|
touch repo/.git/reftable/tables.list.lock &&
|
||||||
|
cat >expect <<-EOF &&
|
||||||
|
error: unable to compact stack: data is locked
|
||||||
|
EOF
|
||||||
|
test_must_fail git -C repo pack-refs 2>err &&
|
||||||
|
test_cmp expect err
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'pack-refs: prunes stale tables' '
|
test_expect_success 'pack-refs: prunes stale tables' '
|
||||||
test_when_finished "rm -rf repo" &&
|
test_when_finished "rm -rf repo" &&
|
||||||
git init repo &&
|
git init repo &&
|
||||||
|
|
Loading…
Reference in New Issue