X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=send-pack.c;h=5bc2f017bca8e9c92352b19469b3c1021844ddec;hb=e6c310fd0d7384973efc6b1d5999a5e8a5b2f3bd;hp=f61c15c820facf936856c0af6be52a266b7e3dfd;hpb=a9572072f0ab0ac97e64b0dc01254a3ad95befe1;p=git.git diff --git a/send-pack.c b/send-pack.c index f61c15c8..5bc2f017 100644 --- a/send-pack.c +++ b/send-pack.c @@ -8,6 +8,7 @@ static const char send_pack_usage[] = "git-send-pack [--all] [--exec=git-receive-pack] [...]\n" " --all and explicit specification are mutually exclusive."; static const char *exec = "git-receive-pack"; +static int verbose = 0; static int send_all = 0; static int force_update = 0; @@ -179,6 +180,7 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec) { struct ref *ref; int new_refs; + int ret = 0; /* No funny business with the matcher */ remote_tail = get_remote_heads(in, &remote_refs, 0, NULL, 1); @@ -205,7 +207,8 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec) if (!ref->peer_ref) continue; if (!memcmp(ref->old_sha1, ref->peer_ref->new_sha1, 20)) { - fprintf(stderr, "'%s': up-to-date\n", ref->name); + if (verbose) + fprintf(stderr, "'%s': up-to-date\n", ref->name); continue; } @@ -232,6 +235,7 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec) error("remote '%s' object %s does not " "exist on local", ref->name, sha1_to_hex(ref->old_sha1)); + ret = -2; continue; } @@ -245,12 +249,14 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec) error("remote ref '%s' is not a strict " "subset of local ref '%s'.", ref->name, ref->peer_ref->name); + ret = -2; continue; } } memcpy(ref->new_sha1, ref->peer_ref->new_sha1, 20); if (is_zero_sha1(ref->new_sha1)) { error("cannot happen anymore"); + ret = -3; continue; } new_refs++; @@ -266,8 +272,10 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec) packet_flush(out); if (new_refs) pack_objects(out, remote_refs); + else if (ret == 0) + fprintf(stderr, "Everything up-to-date\n"); close(out); - return 0; + return ret; } @@ -297,6 +305,10 @@ int main(int argc, char **argv) force_update = 1; continue; } + if (!strcmp(arg, "--verbose")) { + verbose = 1; + continue; + } usage(send_pack_usage); } if (!dest) {