get_oid_hex_segment(): return 0 on success
[gitweb.git] / send-pack.c
index 312cd2c2828a0e41d12087a5fc206ba4854709cb..11d6f3d98398e8b7a1add501dd7ee85a736531b6 100644 (file)
@@ -1,4 +1,5 @@
 #include "builtin.h"
+#include "config.h"
 #include "commit.h"
 #include "refs.h"
 #include "pkt-line.h"
@@ -132,7 +133,7 @@ static int pack_objects(int fd, struct ref *refs, struct oid_array *extra, struc
                 * For a normal non-zero exit, we assume pack-objects wrote
                 * something useful to stderr. For death by signal, though,
                 * we should mention it to the user. The exception is SIGPIPE
-                * (141), because that's a normal occurence if the remote end
+                * (141), because that's a normal occurrence if the remote end
                 * hangs up (and we'll report that by trying to read the unpack
                 * status).
                 */
@@ -532,6 +533,14 @@ int send_pack(struct send_pack_args *args,
                }
        }
 
+       if (use_push_options) {
+               struct string_list_item *item;
+
+               packet_buf_flush(&req_buf);
+               for_each_string_list_item(item, args->push_options)
+                       packet_buf_write(&req_buf, "%s", item->string);
+       }
+
        if (args->stateless_rpc) {
                if (!args->dry_run && (cmds_sent || is_repository_shallow())) {
                        packet_buf_flush(&req_buf);
@@ -544,18 +553,6 @@ int send_pack(struct send_pack_args *args,
        strbuf_release(&req_buf);
        strbuf_release(&cap_buf);
 
-       if (use_push_options) {
-               struct string_list_item *item;
-               struct strbuf sb = STRBUF_INIT;
-
-               for_each_string_list_item(item, args->push_options)
-                       packet_buf_write(&sb, "%s", item->string);
-
-               write_or_die(out, sb.buf, sb.len);
-               packet_flush(out);
-               strbuf_release(&sb);
-       }
-
        if (use_sideband && cmds_sent) {
                memset(&demux, 0, sizeof(demux));
                demux.proc = sideband_demux;