OSDN Git Service

do not discard status in fetch_refs_via_pack()
authorJunio C Hamano <gitster@pobox.com>
Wed, 5 Dec 2007 07:01:19 +0000 (23:01 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Dec 2007 15:54:06 +0000 (07:54 -0800)
The code calls fetch_pack() to get the list of refs it fetched, and
discards refs and always returns 0 to signal success.

But builtin-fetch-pack.c::fetch_pack() has error cases.  The function
returns NULL if error is detected (shallow-support side seems to choose
to die but I suspect that is easily fixable to error out as well).

Make fetch_refs_via_pack() propagate that error to the caller.

Acked-By: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport.c

index 3eb93b4..58e66f6 100644 (file)
@@ -659,7 +659,7 @@ static int fetch_refs_via_pack(struct transport *transport,
        free(heads);
        free_refs(refs);
        free(dest);
-       return 0;
+       return (refs ? 0 : -1);
 }
 
 static int git_transport_push(struct transport *transport, int refspec_nr, const char **refspec, int flags)