Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
transport-helper: propagate recvline() error pushing
author
Felipe Contreras
<felipe.contreras@gmail.com>
Sat, 12 Apr 2014 20:33:30 +0000
(15:33 -0500)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 14 Apr 2014 20:51:37 +0000
(13:51 -0700)
It's cleaner, and will allow us to do something sensible on errors
later.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport-helper.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
5931b33
)
diff --git
a/transport-helper.c
b/transport-helper.c
index f0d7fc772cc76a8f3fc59cda58179819ed2613b9..e91bc9af8912be582fd16fcfa06afc4fb3dc9e9e 100644
(file)
--- a/
transport-helper.c
+++ b/
transport-helper.c
@@
-739,17
+739,22
@@
static int push_update_ref_status(struct strbuf *buf,
return !(status == REF_STATUS_OK);
}
return !(status == REF_STATUS_OK);
}
-static
void
push_update_refs_status(struct helper_data *data,
+static
int
push_update_refs_status(struct helper_data *data,
struct ref *remote_refs,
int flags)
{
struct strbuf buf = STRBUF_INIT;
struct ref *ref = remote_refs;
struct ref *remote_refs,
int flags)
{
struct strbuf buf = STRBUF_INIT;
struct ref *ref = remote_refs;
+ int ret = 0;
+
for (;;) {
char *private;
for (;;) {
char *private;
- if (recvline(data, &buf))
- exit(128);
+ if (recvline(data, &buf)) {
+ ret = 1;
+ break;
+ }
+
if (!buf.len)
break;
if (!buf.len)
break;
@@
-767,6
+772,7
@@
static void push_update_refs_status(struct helper_data *data,
free(private);
}
strbuf_release(&buf);
free(private);
}
strbuf_release(&buf);
+ return ret;
}
static int push_refs_with_push(struct transport *transport,
}
static int push_refs_with_push(struct transport *transport,
@@
-847,8
+853,7
@@
static int push_refs_with_push(struct transport *transport,
sendline(data, &buf);
strbuf_release(&buf);
sendline(data, &buf);
strbuf_release(&buf);
- push_update_refs_status(data, remote_refs, flags);
- return 0;
+ return push_update_refs_status(data, remote_refs, flags);
}
static int push_refs_with_export(struct transport *transport,
}
static int push_refs_with_export(struct transport *transport,
@@
-906,8
+911,7
@@
static int push_refs_with_export(struct transport *transport,
if (finish_command(&exporter))
die("Error while running fast-export");
if (finish_command(&exporter))
die("Error while running fast-export");
- push_update_refs_status(data, remote_refs, flags);
- return 0;
+ return push_update_refs_status(data, remote_refs, flags);
}
static int push_refs(struct transport *transport,
}
static int push_refs(struct transport *transport,