X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=ssh-fetch.c;h=b006c5c9802d96bc504188e10a9698a1f943477c;hb=144d33dec97405889e302c2391300ee04aad7714;hp=bf01fbc00d649231cb7ba49aba9432afe570b319;hpb=3eeb419968c1f8f0a762a7127db770e9d9c8037d;p=git.git diff --git a/ssh-fetch.c b/ssh-fetch.c index bf01fbc00..b006c5c98 100644 --- a/ssh-fetch.c +++ b/ssh-fetch.c @@ -17,14 +17,14 @@ static int fd_in; static int fd_out; -static unsigned char remote_version = 0; +static unsigned char remote_version; static unsigned char local_version = 1; static ssize_t force_write(int fd, void *buffer, size_t length) { ssize_t ret = 0; while (ret < length) { - ssize_t size = write(fd, buffer + ret, length - ret); + ssize_t size = write(fd, (char *) buffer + ret, length - ret); if (size < 0) { return size; } @@ -36,9 +36,9 @@ static ssize_t force_write(int fd, void *buffer, size_t length) return ret; } -static int prefetches = 0; +static int prefetches; -static struct object_list *in_transit = NULL; +static struct object_list *in_transit; static struct object_list **end_of_transit = &in_transit; void prefetch(unsigned char *sha1) @@ -59,7 +59,7 @@ void prefetch(unsigned char *sha1) } static char conn_buf[4096]; -static size_t conn_buf_posn = 0; +static size_t conn_buf_posn; int fetch(unsigned char *sha1) { @@ -67,8 +67,8 @@ int fetch(unsigned char *sha1) signed char remote; struct object_list *temp; - if (memcmp(sha1, in_transit->item->sha1, 20)) { - // we must have already fetched it to clean the queue + if (hashcmp(sha1, in_transit->item->sha1)) { + /* we must have already fetched it to clean the queue */ return has_sha1_file(sha1) ? 0 : -1; } prefetches--; @@ -85,7 +85,7 @@ int fetch(unsigned char *sha1) if (read(fd_in, &remote, 1) < 1) return -1; } - //fprintf(stderr, "Got %d\n", remote); + /* fprintf(stderr, "Got %d\n", remote); */ if (remote < 0) return remote; ret = write_sha1_from_fd(sha1, fd_in, conn_buf, 4096, &conn_buf_posn); @@ -120,9 +120,10 @@ int fetch_ref(char *ref, unsigned char *sha1) static const char ssh_fetch_usage[] = MY_PROGRAM_NAME - " [-c] [-t] [-a] [-v] [-d] [--recover] [-w ref] commit-id url"; + " [-c] [-t] [-a] [-v] [--recover] [-w ref] commit-id url"; int main(int argc, char **argv) { + const char *write_ref = NULL; char *commit_id; char *url; int arg = 1; @@ -131,6 +132,10 @@ int main(int argc, char **argv) prog = getenv("GIT_SSH_PUSH"); if (!prog) prog = "git-ssh-upload"; + setup_ident(); + setup_git_directory(); + git_config(git_default_config); + while (arg < argc && argv[arg][0] == '-') { if (argv[arg][1] == 't') { get_tree = 1; @@ -163,7 +168,7 @@ int main(int argc, char **argv) if (get_version()) return 1; - if (pull(commit_id)) + if (pull(1, &commit_id, &write_ref, url)) return 1; return 0;