diff options
Diffstat (limited to 'third_party/git/send-pack.c')
-rw-r--r-- | third_party/git/send-pack.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/third_party/git/send-pack.c b/third_party/git/send-pack.c index 0407841ae87a..6dc16c321163 100644 --- a/third_party/git/send-pack.c +++ b/third_party/git/send-pack.c @@ -40,10 +40,7 @@ int option_parse_push_signed(const struct option *opt, static void feed_object(const struct object_id *oid, FILE *fh, int negative) { - if (negative && - !has_object_file_with_flags(oid, - OBJECT_INFO_SKIP_FETCH_OBJECT | - OBJECT_INFO_QUICK)) + if (negative && !has_object_file(oid)) return; if (negative) @@ -567,6 +564,8 @@ int send_pack(struct send_pack_args *args, if (need_pack_data && cmds_sent) { if (pack_objects(out, remote_refs, extra_have, args) < 0) { + for (ref = remote_refs; ref; ref = ref->next) + ref->status = REF_STATUS_NONE; if (args->stateless_rpc) close(out); if (git_connection_is_socket(conn)) @@ -574,12 +573,10 @@ int send_pack(struct send_pack_args *args, /* * Do not even bother with the return value; we know we - * are failing, and just want the error() side effects, - * as well as marking refs with their remote status (if - * we get one). + * are failing, and just want the error() side effects. */ if (status_report) - receive_status(&reader, remote_refs); + receive_unpack_status(&reader); if (use_sideband) { close(demux.out); |