git-p4: add failing test for P4EDITOR handling
[gitweb.git] / send-pack.c
index 22498080271a5702a7e79a72af1f1f8491d15121..677bac31930298a7cc4c0087aef8b62fb10249f2 100644 (file)
@@ -47,8 +47,9 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru
                NULL,
                NULL,
                NULL,
+               NULL,
        };
-       struct child_process po;
+       struct child_process po = CHILD_PROCESS_INIT;
        int i;
 
        i = 4;
@@ -60,7 +61,8 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru
                argv[i++] = "-q";
        if (args->progress)
                argv[i++] = "--progress";
-       memset(&po, 0, sizeof(po));
+       if (is_repository_shallow())
+               argv[i++] = "--shallow";
        po.argv = argv;
        po.in = -1;
        po.out = args->stateless_rpc ? -1 : fd;
@@ -232,15 +234,15 @@ static int generate_push_cert(struct strbuf *req_buf,
                              const char *push_cert_nonce)
 {
        const struct ref *ref;
-       char stamp[60];
        char *signing_key = xstrdup(get_signing_key());
        const char *cp, *np;
        struct strbuf cert = STRBUF_INIT;
        int update_seen = 0;
 
-       datestamp(stamp, sizeof(stamp));
        strbuf_addf(&cert, "certificate version 0.1\n");
-       strbuf_addf(&cert, "pusher %s %s\n", signing_key, stamp);
+       strbuf_addf(&cert, "pusher %s ", signing_key);
+       datestamp(&cert);
+       strbuf_addch(&cert, '\n');
        if (args->url && *args->url) {
                char *anon_url = transport_anonymize_url(args->url);
                strbuf_addf(&cert, "pushee %s\n", anon_url);