Skip to content

Commit

Permalink
fetch: no redundant error message for atomic fetch
Browse files Browse the repository at this point in the history
If an error occurs during an atomic fetch, a redundant error message
will appear at the end of do_fetch(). It was introduced in b3a8046
(fetch: make `--atomic` flag cover backfilling of tags, 2022-02-17).

In function do_fetch(), a failure message is already shown before the
retcode is set, so we should not call additional error() at the end of
this function.

We can remove the redundant error() function, because we know that
the function ref_transaction_abort() never fails. While we can find a
common pattern for calling ref_transaction_abort() by running command
"git grep -A1 ref_transaction_abort", e.g.:

    if (ref_transaction_abort(transaction, &error))
        error("abort: %s", error.buf);

We can fix this issue follow this pattern, and the test case "fetch
porcelain output (atomic)" in t5574 will also be fixed. If in the future
we decide that we don't need to check the return value of the function
ref_transaction_abort(), this change can be fixed along with it.

Signed-off-by: Jiang Xin <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
jiangxin authored and gitster committed Dec 14, 2023
1 parent 0b9865f commit e10fa19
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 4 deletions.
4 changes: 1 addition & 3 deletions builtin/fetch.c
Original file line number Diff line number Diff line change
Expand Up @@ -1775,10 +1775,8 @@ static int do_fetch(struct transport *transport,
}

cleanup:
if (retcode && transaction) {
ref_transaction_abort(transaction, &err);
if (retcode && transaction && ref_transaction_abort(transaction, &err))
error("%s", err.buf);
}

display_state_release(&display_state);
close_fetch_head(&fetch_head);
Expand Down
2 changes: 1 addition & 1 deletion t/t5574-fetch-output.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ do
opt=
;;
esac
test_expect_failure "fetch porcelain output ${opt:+(atomic)}" '
test_expect_success "fetch porcelain output ${opt:+(atomic)}" '
test_when_finished "rm -rf porcelain" &&
# Clone and pre-seed the repositories. We fetch references into two
Expand Down

0 comments on commit e10fa19

Please sign in to comment.