From 90a6c7d443058e8ad3eb36d21f4ede99addbca61 Mon Sep 17 00:00:00 2001 From: Clemens Buchacher Date: Sat, 30 Jul 2011 14:10:14 +0200 Subject: propagate --quiet to send-pack/receive-pack Currently, git push --quiet produces some non-error output, e.g.: $ git push --quiet Unpacking objects: 100% (3/3), done. Add the --quiet option to send-pack/receive-pack and pass it to unpack-objects in the receive-pack codepath and to receive-pack in the push codepath. This fixes a bug reported for the fedora git package: https://bugzilla.redhat.com/show_bug.cgi?id=725593 Reported-by: Jesse Keating Cc: Todd Zullinger Signed-off-by: Clemens Buchacher Signed-off-by: Junio C Hamano --- builtin/receive-pack.c | 12 ++++++++++-- builtin/send-pack.c | 11 ++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'builtin') diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index e1a687ad07..fca26fb5fb 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -636,7 +636,7 @@ static const char *parse_pack_header(struct pack_header *hdr) static const char *pack_lockfile; -static const char *unpack(void) +static const char *unpack(int quiet) { struct pack_header hdr; const char *hdr_err; @@ -653,6 +653,8 @@ static const char *unpack(void) int code, i = 0; const char *unpacker[4]; unpacker[i++] = "unpack-objects"; + if (quiet) + unpacker[i++] = "-q"; if (receive_fsck_objects) unpacker[i++] = "--strict"; unpacker[i++] = hdr_arg; @@ -753,6 +755,7 @@ static void add_alternate_refs(void) int cmd_receive_pack(int argc, const char **argv, const char *prefix) { + int quiet = 0; int advertise_refs = 0; int stateless_rpc = 0; int i; @@ -766,6 +769,11 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) const char *arg = *argv++; if (*arg == '-') { + if (!strcmp(arg, "--quiet")) { + quiet = 1; + continue; + } + if (!strcmp(arg, "--advertise-refs")) { advertise_refs = 1; continue; @@ -814,7 +822,7 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) const char *unpack_status = NULL; if (!delete_only(commands)) - unpack_status = unpack(); + unpack_status = unpack(quiet); execute_commands(commands, unpack_status); if (pack_lockfile) unlink_or_warn(pack_lockfile); diff --git a/builtin/send-pack.c b/builtin/send-pack.c index c1f6ddd927..40a1675997 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -439,6 +439,10 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) args.force_update = 1; continue; } + if (!strcmp(arg, "--quiet")) { + args.quiet = 1; + continue; + } if (!strcmp(arg, "--verbose")) { args.verbose = 1; continue; @@ -488,8 +492,13 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix) fd[0] = 0; fd[1] = 1; } else { - conn = git_connect(fd, dest, receivepack, + struct strbuf sb = STRBUF_INIT; + strbuf_addstr(&sb, receivepack); + if (args.quiet) + strbuf_addstr(&sb, " --quiet"); + conn = git_connect(fd, dest, sb.buf, args.verbose ? CONNECT_VERBOSE : 0); + strbuf_release(&sb); } memset(&extra_have, 0, sizeof(extra_have)); -- cgit v1.2.3 From 0d086b8e33820d7cf87386a912e2939c59822f35 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 8 Aug 2011 12:31:01 -0700 Subject: receive-pack: do not overstep command line argument array Previous commit added one element to the command line, without making sure the result fits there. Signed-off-by: Junio C Hamano --- builtin/receive-pack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'builtin') diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index fca26fb5fb..0d51bfb79e 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -651,7 +651,7 @@ static const char *unpack(int quiet) if (ntohl(hdr.hdr_entries) < unpack_limit) { int code, i = 0; - const char *unpacker[4]; + const char *unpacker[5]; unpacker[i++] = "unpack-objects"; if (quiet) unpacker[i++] = "-q"; -- cgit v1.2.3