]> git.ipfire.org Git - thirdparty/git.git/commit
receive-pack: utilize rejected ref error details
authorKarthik Nayak <karthik.188@gmail.com>
Sun, 25 Jan 2026 22:52:40 +0000 (23:52 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Jan 2026 06:27:34 +0000 (22:27 -0800)
commit2ea49f21e39de63481a6faf93e82a4b35f0e0ca2
treeb70ba133d4407c2079e107fe3279a2db9f9b2601
parent274f4355527275515a2c7c5f5a1214cf57b06338
receive-pack: utilize rejected ref error details

In 9d2962a7c4 (receive-pack: use batched reference updates, 2025-05-19),
git-receive-pack(1) switched to using batched reference updates. This also
introduced a regression wherein instead of providing detailed error
messages for failed referenced updates, the users were provided generic
error messages based on the error type.

Now that the updates also contain detailed error message, propagate
those to the client via 'rp_error'. The detailed error messages can be
very verbose, for e.g. in the files backend, when trying to write a
non-commit object to a branch, you would see:

   ! [remote rejected] 3eaec9ccf3a53f168362a6b3fdeb73426fb9813d ->
   branch (cannot update ref 'refs/heads/branch': trying to write
   non-commit object 3eaec9ccf3a53f168362a6b3fdeb73426fb9813d to branch
   'refs/heads/branch')

Here the refname is repeated multiple times due to how error messages
are propagated and filled over the code stack. This potentially can be
cleaned up in a future commit.

Reported-by: Elijah Newren <newren@gmail.com>
Co-authored-by: Jeff King <peff@peff.net>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
t/t5516-fetch-push.sh