summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-propagate-quiet-to-send-pack-receive-pack.patch201
-rw-r--r--git.spec8
2 files changed, 208 insertions, 1 deletions
diff --git a/0001-propagate-quiet-to-send-pack-receive-pack.patch b/0001-propagate-quiet-to-send-pack-receive-pack.patch
new file mode 100644
index 0000000..59f8879
--- /dev/null
+++ b/0001-propagate-quiet-to-send-pack-receive-pack.patch
@@ -0,0 +1,201 @@
+From c513fc653a2f88fd29e30ffcdd8aaf7741222cc7 Mon Sep 17 00:00:00 2001
+From: Clemens Buchacher <drizzd@aon.at>
+Date: Sat, 30 Jul 2011 10:35:24 -0400
+Subject: [PATCH] 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 <jkeating@redhat.com>
+Cc: Todd Zullinger <tmz@pobox.com>
+Signed-off-by: Clemens Buchacher <drizzd@aon.at>
+---
+ Documentation/git-receive-pack.txt | 5 ++++-
+ Documentation/git-send-pack.txt | 5 ++++-
+ builtin/receive-pack.c | 12 ++++++++++--
+ builtin/send-pack.c | 11 ++++++++++-
+ remote-curl.c | 4 +++-
+ transport.c | 10 +++++++---
+ 6 files changed, 38 insertions(+), 9 deletions(-)
+
+diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt
+index f34e0ae..23f9a48 100644
+--- a/Documentation/git-receive-pack.txt
++++ b/Documentation/git-receive-pack.txt
+@@ -8,7 +8,7 @@ git-receive-pack - Receive what is pushed into the repository
+
+ SYNOPSIS
+ --------
+-'git-receive-pack' <directory>
++'git-receive-pack' [--quiet] <directory>
+
+ DESCRIPTION
+ -----------
+@@ -34,6 +34,9 @@ are not fast-forwards.
+
+ OPTIONS
+ -------
++--quiet::
++ Print only error messages.
++
+ <directory>::
+ The repository to sync into.
+
+diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt
+index 17f8f55..67bcd0c 100644
+--- a/Documentation/git-send-pack.txt
++++ b/Documentation/git-send-pack.txt
+@@ -8,7 +8,7 @@ git-send-pack - Push objects over git protocol to another repository
+
+ SYNOPSIS
+ --------
+-'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
+ -----------
+@@ -44,6 +44,9 @@ OPTIONS
+ the remote repository can lose commits; use it with
+ care.
+
++--quiet::
++ Print only error messages.
++
+ --verbose::
+ Run verbosely.
+
+diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
+index e1a687a..fca26fb 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 c1f6ddd..40a1675 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));
+diff --git a/remote-curl.c b/remote-curl.c
+index b5be25c..1da0ff4 100644
+--- a/remote-curl.c
++++ b/remote-curl.c
+@@ -764,7 +764,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++)
+diff --git a/transport.c b/transport.c
+index c9c8056..98c5778 100644
+--- a/transport.c
++++ b/transport.c
+@@ -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;
+ }
+--
+1.7.6.rc1
+
diff --git a/git.spec b/git.spec
index 7eabe22..50a181d 100644
--- a/git.spec
+++ b/git.spec
@@ -69,7 +69,7 @@
Name: git
Version: 1.7.6
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Fast Version Control System
License: GPLv2
Group: Development/Tools
@@ -87,6 +87,8 @@ Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
Patch2: git-1.6-update-contrib-hooks-path.patch
# https://bugzilla.redhat.com/600411
Patch3: git-1.7-el5-emacs-support.patch
+# https://bugzilla.redhat.com/725593
+Patch4: 0001-propagate-quiet-to-send-pack-receive-pack.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: desktop-file-utils
@@ -288,6 +290,7 @@ Requires: emacs-git = %{version}-%{release}
%if %{emacs_old}
%patch3 -p1
%endif
+%patch4 -p1
# Use these same options for every invocation of 'make'.
# Otherwise it will rebuild in %%install due to flags changes.
@@ -522,6 +525,9 @@ rm -rf %{buildroot}
# No files for you!
%changelog
+* Fri Aug 05 2011 Todd Zullinger <tmz@pobox.com> - 1.7.6-5
+- Fix git push --quiet, thanks to Clemens Buchacher (#725593)
+
* Tue Jul 26 2011 Todd Zullinger <tmz@pobox.com> - 1.7.6-4
- Drop git-arch on fedora >= 16, the tla package has been retired
- Rework most spec file dist conditionals to make future changes easier