Merge branch 'cb/maint-quiet-push'

* cb/maint-quiet-push:
  receive-pack: do not overstep command line argument array
  propagate --quiet to send-pack/receive-pack

Conflicts:
	Documentation/git-receive-pack.txt
	Documentation/git-send-pack.txt
This commit is contained in:
Junio C Hamano 2011-08-17 17:26:05 -07:00
commit 6dd5622f68
6 changed files with 39 additions and 10 deletions

View File

@ -9,7 +9,7 @@ git-receive-pack - Receive what is pushed into the repository
SYNOPSIS
--------
[verse]
'git-receive-pack' <directory>
'git-receive-pack' [--quiet] <directory>
DESCRIPTION
-----------
@ -35,6 +35,9 @@ are not fast-forwards.
OPTIONS
-------
--quiet::
Print only error messages.
<directory>::
The repository to sync into.

View File

@ -9,7 +9,7 @@ git-send-pack - Push objects over git protocol to another repository
SYNOPSIS
--------
[verse]
'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>...]
'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--quiet] [--verbose] [--thin] [<host>:]<directory> [<ref>...]
DESCRIPTION
-----------
@ -45,6 +45,9 @@ OPTIONS
the remote repository can lose commits; use it with
care.
--quiet::
Print only error messages.
--verbose::
Run verbosely.

View File

@ -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;
@ -651,8 +651,10 @@ static const char *unpack(void)
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";
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);

View File

@ -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));

View File

@ -762,7 +762,9 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
argv[argc++] = "--thin";
if (options.dry_run)
argv[argc++] = "--dry-run";
if (options.verbosity > 1)
if (options.verbosity < 0)
argv[argc++] = "--quiet";
else if (options.verbosity > 1)
argv[argc++] = "--verbose";
argv[argc++] = url;
for (i = 0; i < nr_spec; i++)

View File

@ -482,14 +482,18 @@ static int set_git_option(struct git_transport_options *opts,
static int connect_setup(struct transport *transport, int for_push, int verbose)
{
struct git_transport_data *data = transport->data;
struct strbuf sb = STRBUF_INIT;
if (data->conn)
return 0;
data->conn = git_connect(data->fd, transport->url,
for_push ? data->options.receivepack :
data->options.uploadpack,
strbuf_addstr(&sb, for_push ? data->options.receivepack :
data->options.uploadpack);
if (for_push && transport->verbose < 0)
strbuf_addstr(&sb, " --quiet");
data->conn = git_connect(data->fd, transport->url, sb.buf,
verbose ? CONNECT_VERBOSE : 0);
strbuf_release(&sb);
return 0;
}