Web lists-archives.com

[PATCH] fetch-pack: show clearer error message upon ERR

Currently, fetch-pack prints a confusing error message ("expected
ACK/NAK") when the server it's communicating with sends a pkt-line
starting with "ERR".  Replace it with a less confusing error message.

(Git will send "ERR" lines when a "want" line references an object that
it does not have. This is uncommon, but can happen if a repository is
garbage-collected during a negotiation.)

Signed-off-by: Jonathan Tan <jonathantanmy@xxxxxxxxxx>

This situation has been noticed occasionally in my company - this is a
small change that would make the situation slightly easier to

 fetch-pack.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fetch-pack.c b/fetch-pack.c
index d07d85ce3..688523bfd 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -276,6 +276,8 @@ static enum ack_type get_ack(int fd, unsigned char *result_sha1)
 			return ACK;
+	if (skip_prefix(line, "ERR ", &arg))
+		die(_("git fetch-pack: got remote error '%s'"), arg);
 	die(_("git fetch-pack: expected ACK/NAK, got '%s'"), line);