From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Shawn O. Pearce" <spearce@spearce.org>, git@vger.kernel.org
Subject: [PATCH 1/4] send-pack: fix capability-sending logic
Date: Fri, 10 Aug 2012 03:57:31 -0400 [thread overview]
Message-ID: <20120810075731.GA8399@sigill.intra.peff.net> (raw)
In-Reply-To: <20120810075342.GA30072@sigill.intra.peff.net>
If we have capabilities to send to the server, we send the
regular "want" line followed by a NUL, then the
capabilities; otherwise, we do not even send the NUL.
However, when checking whether we want to send the "quiet"
capability, we check args->quiet, which is wrong. That flag
only tells us whether the client side wanted to be quiet,
not whether the server supports it (originally, in c207e34f,
it meant both; however, that was later split into two flags
by 01fdc21f).
We still check the right flag when actually printing
"quiet", so this could only have two effects:
1. We might send the trailing NUL when we do not otherwise
need to. In theory, an antique pre-capability
implementation of git might choke on this (since the
client is instructed never to respond with capabilities
that the server has not first advertised).
2. We might also want to send the quiet flag if the
args->progress flag is false, but this code path would
not trigger in that instance.
In practice, it almost certainly never matters. The
report-status capability dates back to 2005. Any real-world
server is going to advertise that, and we will always
respond with at least that capability.
Signed-off-by: Jeff King <peff@peff.net>
---
I'm tempted to remove this part of the conditional entirely to make the
code simpler, which would mean that we always send the extra NUL, even
if there are no capabilities. But I'm not 100% sure that pre-1.1.0
versions of git actually handle that, and who knows if there are other
implementations. This fix is the safe, conservative route.
builtin/send-pack.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index c4d4211..5c69995 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -306,7 +306,7 @@ int send_pack(struct send_pack_args *args,
char *new_hex = sha1_to_hex(ref->new_sha1);
int quiet = quiet_supported && (args->quiet || !args->progress);
- if (!cmds_sent && (status_report || use_sideband || args->quiet)) {
+ if (!cmds_sent && (status_report || use_sideband || quiet)) {
packet_buf_write(&req_buf,
"%s %s %s%c%s%s%s agent=%s",
old_hex, new_hex, ref->name, 0,
--
1.7.12.rc2.4.g7f05cf9
next prev parent reply other threads:[~2012-08-10 7:57 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-10 7:53 [PATCH 0/4] jk/version-string and google code Jeff King
2012-08-10 7:57 ` Jeff King [this message]
2012-08-10 7:57 ` [PATCH 2/4] do not send client agent unless server does first Jeff King
2012-08-10 19:45 ` Junio C Hamano
2012-08-10 21:09 ` Jeff King
2012-08-10 7:58 ` [PATCH 3/4] connect: learn to parse capabilities with values Jeff King
2012-08-10 8:06 ` Eric Sunshine
2012-08-10 20:01 ` Junio C Hamano
2012-08-10 21:15 ` Jeff King
2012-08-10 21:55 ` Junio C Hamano
2012-08-13 19:03 ` Junio C Hamano
2012-08-13 19:07 ` [PATCH 4/4] fetch-pack: mention server version with verbose output Junio C Hamano
2012-08-13 19:43 ` Junio C Hamano
2012-08-13 20:54 ` Jeff King
2012-08-13 21:07 ` Junio C Hamano
2012-08-13 21:07 ` Jeff King
2012-08-13 21:09 ` Junio C Hamano
2012-08-13 21:11 ` Jeff King
2012-08-14 1:59 ` Jeff King
2012-08-14 2:02 ` Jeff King
2012-08-14 4:56 ` Junio C Hamano
2012-08-10 7:59 ` Jeff King
2012-08-10 15:34 ` [PATCH 0/4] jk/version-string and google code Junio C Hamano
2012-08-10 17:46 ` Jeff King
2012-08-10 18:52 ` Junio C Hamano
2012-08-10 21:50 ` Jeff King
2012-08-10 22:29 ` Shawn Pearce
2012-08-10 22:36 ` Junio C Hamano
2012-08-10 15:37 ` Junio C Hamano
2012-08-10 18:06 ` Dave Borowitz
2012-08-10 18:08 ` Jeff King
2012-08-10 18:13 ` Dave Borowitz
2012-08-10 18:25 ` Jeff King
2012-08-10 21:25 ` Junio C Hamano
2012-08-10 21:35 ` Jeff King
2012-08-10 21:42 ` Junio C Hamano
2012-08-10 19:11 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120810075731.GA8399@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).