X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=http-push.c;h=114d01bced1cb3f9a906c7c0df85bf5cd2b811e0;hb=7d09fbe4ab7f080a8f8f5dcef7e0f3edf5e26019;hp=b35d400ee1a2e8b5c97ca6ad82f6d91818519456;hpb=ac5a85181ac18b0119705f46cfa825389643df33;p=git.git diff --git a/http-push.c b/http-push.c index b35d400e..114d01bc 100644 --- a/http-push.c +++ b/http-push.c @@ -6,6 +6,7 @@ #include "blob.h" #include "http.h" #include "refs.h" +#include "diff.h" #include "revision.h" #include "exec_cmd.h" @@ -59,12 +60,12 @@ enum XML_Status { #define LOCK_TIME 600 #define LOCK_REFRESH 30 -/* bits #0-4 in revision.h */ +/* bits #0-15 in revision.h */ -#define LOCAL (1u << 5) -#define REMOTE (1u << 6) -#define FETCHING (1u << 7) -#define PUSHING (1u << 8) +#define LOCAL (1u<<16) +#define REMOTE (1u<<17) +#define FETCHING (1u<<18) +#define PUSHING (1u<<19) /* We allow "recursive" symbolic refs. Only within reason, though */ #define MAXDEPTH 5 @@ -622,7 +623,7 @@ static int refresh_lock(struct remote_lock *lock) return rc; } -static void check_locks() +static void check_locks(void) { struct remote_lock *lock = remote->locks; time_t current_time = time(NULL); @@ -1008,8 +1009,7 @@ static int fetch_indices(void) struct active_request_slot *slot; struct slot_results results; - data = xmalloc(4096); - memset(data, 0, 4096); + data = xcalloc(1, 4096); buffer.size = 4096; buffer.posn = 0; buffer.buffer = data; @@ -1212,7 +1212,7 @@ static void xml_start_tag(void *userData, const char *name, const char **atts) { struct xml_ctx *ctx = (struct xml_ctx *)userData; - const char *c = index(name, ':'); + const char *c = strchr(name, ':'); int new_len; if (c == NULL) @@ -1241,7 +1241,7 @@ static void xml_end_tag(void *userData, const char *name) { struct xml_ctx *ctx = (struct xml_ctx *)userData; - const char *c = index(name, ':'); + const char *c = strchr(name, ':'); char *ep; ctx->userFunc(ctx, 1); @@ -1863,6 +1863,7 @@ static void one_remote_ref(char *refname) struct ref *ref; unsigned char remote_sha1[20]; struct object *obj; + int len = strlen(refname) + 1; if (fetch_ref(refname, remote_sha1) != 0) { fprintf(stderr, @@ -1884,7 +1885,6 @@ static void one_remote_ref(char *refname) } } - int len = strlen(refname) + 1; ref = xcalloc(1, sizeof(*ref) + len); memcpy(ref->old_sha1, remote_sha1, 20); memcpy(ref->name, refname, len); @@ -2042,8 +2042,7 @@ static void update_remote_info_refs(struct remote_lock *lock) char *if_header; struct curl_slist *dav_headers = NULL; - buffer.buffer = xmalloc(4096); - memset(buffer.buffer, 0, 4096); + buffer.buffer = xcalloc(1, 4096); buffer.size = 4096; buffer.posn = 0; remote_ls("refs/", (PROCESS_FILES | RECURSIVE), @@ -2313,6 +2312,8 @@ int main(int argc, char **argv) int objects_to_send; int rc = 0; int i; + int new_refs; + struct ref *ref; setup_git_directory(); setup_ident(); @@ -2347,10 +2348,10 @@ int main(int argc, char **argv) } } if (!remote->url) { - remote->url = arg; char *path = strstr(arg, "//"); + remote->url = arg; if (path) { - path = index(path+2, '/'); + path = strchr(path+2, '/'); if (path) remote->path_len = strlen(path); } @@ -2421,10 +2422,13 @@ int main(int argc, char **argv) return 0; } - int new_refs = 0; - struct ref *ref; + new_refs = 0; for (ref = remote_refs; ref; ref = ref->next) { char old_hex[60], *new_hex; + const char *commit_argv[4]; + int commit_argc; + char *new_sha1_hex, *old_sha1_hex; + if (!ref->peer_ref) continue; if (!memcmp(ref->old_sha1, ref->peer_ref->new_sha1, 20)) { @@ -2482,10 +2486,9 @@ int main(int argc, char **argv) } /* Set up revision info for this refspec */ - const char *commit_argv[4]; - int commit_argc = 3; - char *new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1)); - char *old_sha1_hex = NULL; + commit_argc = 3; + new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1)); + old_sha1_hex = NULL; commit_argv[1] = "--objects"; commit_argv[2] = new_sha1_hex; if (!push_all && !is_zero_sha1(ref->old_sha1)) {