From: Jeff King <peff@peff.net>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Jonathan Nieder <jrnieder@gmail.com>,
"Shawn O. Pearce" <spearce@spearce.org>
Subject: [PATCHv3 0/19] pkt-line cleanups and fixes
Date: Wed, 20 Feb 2013 14:51:47 -0500 [thread overview]
Message-ID: <20130220195147.GA25332@sigill.intra.peff.net> (raw)
Here's another round of my pkt-line fixes. The more I dug, the more
interesting corners I found. :)
There are really several potentially independent topics rolled together
here. There are dependencies between some of them, so I tried to float
the most independent and non-controversial bits to the beginning. We may
want those as a separate topic to merge sooner, and have the rest as a
topic build on top.
Overall, the diffstat shows a reduction in lines (and I even added a few
dozen lines of comments), which is nice. The intent was to fix some bugs
and corner cases, but I found a lot of cleanup opportunities in the
middle.
builtin/archive.c | 17 ++--
builtin/fetch-pack.c | 11 +-
builtin/receive-pack.c | 10 +-
builtin/send-pack.c | 4 +-
builtin/upload-archive.c | 45 +++------
cache.h | 4 +-
connect.c | 13 +--
daemon.c | 4 +-
fetch-pack.c | 18 ++--
http-backend.c | 8 +-
http.c | 1 +
pkt-line.c | 126 ++++++++++-------------
pkt-line.h | 72 +++++++++++++-
remote-curl.c | 188 ++++++++++++++++-------------------
send-pack.c | 22 ++--
sideband.c | 11 +-
sideband.h | 3 -
t/t5503-tagfollow.sh | 38 ++++---
t/t5700-clone-reference.sh | 10 +-
transport.c | 6 +-
upload-pack.c | 40 +++-----
write_or_die.c | 19 ++--
22 files changed, 321 insertions(+), 349 deletions(-)
The patches are:
[01/19]: upload-pack: use get_sha1_hex to parse "shallow" lines
New in this round; fixes a potential interoperability problem.
[02/19]: upload-pack: do not add duplicate objects to shallow list
New. Fixes a potential memory-consumption denial-of-service.
[03/19]: upload-pack: remove packet debugging harness
New. Optional cleanup, but later patches textually depend on it.
[04/19]: fetch-pack: fix out-of-bounds buffer offset in get_ack
New. Fixes a potential interoperability problem.
[05/19]: send-pack: prefer prefixcmp over memcmp in receive_status
New. Optional cleanup.
[06/19]: upload-archive: do not copy repo name
[07/19]: upload-archive: use argv_array to store client arguments
New. Optional cleanup.
[08/19]: write_or_die: raise SIGPIPE when we get EPIPE
[09/19]: pkt-line: move a misplaced comment
[10/19]: pkt-line: drop safe_write function
The latter two were in the last round; but it's 08/19 that makes
doing 10/19 safe. I think it's also a sane thing to be doing in
general for existing callers of write_or_die.
These can really be pulled into a separate topic if we want, as
there isn't even a lot of textual dependency.
[11/19]: pkt-line: provide a generic reading function with options
This is an alternative to the proliferation of different reading
functions that round 2 had. I think it ends up cleaner. It also
addresses Jonathan's function-signature concerns.
[12/19]: pkt-line: teach packet_read_line to chomp newlines
New. A convenience cleanup that drops a lot of lines. Technically
optional, but later patches depend heavily on it (textually, and for
splitting line-readers from binary-readers).
[13/19]: pkt-line: move LARGE_PACKET_MAX definition from sideband
[14/19]: pkt-line: provide a LARGE_PACKET_MAX static buffer
New. Another cleanup that makes packet_read_line callers a bit
simpler, and bumps the packet size limits throughout git, as we
discussed.
[15/19]: pkt-line: share buffer/descriptor reading implementation
[16/19]: teach get_remote_heads to read from a memory buffer
[17/19]: remote-curl: pass buffer straight to get_remote_heads
These are more or less ported from v2's patches 6-8, except that the
earlier pkt-line changes make the first one way more pleasant.
[18/19]: remote-curl: move ref-parsing code up in file
[19/19]: remote-curl: always parse incoming refs
...and the yak is shaved. More or less a straight rebase of their v2
counterparts, and the thing that actually started me on this topic.
I know it's a big series, but I tried hard to break it down into
bite-sized chunks. Thanks for your reviewing patience.
-Peff
next reply other threads:[~2013-02-20 19:52 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-20 19:51 Jeff King [this message]
2013-02-20 19:53 ` [PATCH v3 01/19] upload-pack: use get_sha1_hex to parse "shallow" lines Jeff King
2013-02-20 19:54 ` [PATCH v3 02/19] upload-pack: do not add duplicate objects to shallow list Jeff King
2013-02-20 19:55 ` [PATCH v3 03/19] upload-pack: remove packet debugging harness Jeff King
2013-02-20 20:00 ` [PATCH v3 04/19] fetch-pack: fix out-of-bounds buffer offset in get_ack Jeff King
2013-02-20 20:00 ` [PATCH v3 05/19] send-pack: prefer prefixcmp over memcmp in receive_status Jeff King
2013-02-20 20:00 ` [PATCH v3 06/19] upload-archive: do not copy repo name Jeff King
2013-02-20 20:01 ` [PATCH v3 07/19] upload-archive: use argv_array to store client arguments Jeff King
2013-02-20 20:01 ` [PATCH v3 08/19] write_or_die: raise SIGPIPE when we get EPIPE Jeff King
2013-02-20 21:51 ` Jonathan Nieder
2013-02-20 21:58 ` Jeff King
2013-02-20 22:01 ` Jonathan Nieder
2013-02-20 22:03 ` Jeff King
2013-02-20 22:06 ` Jonathan Nieder
2013-02-20 22:12 ` Jeff King
2013-02-20 22:19 ` Junio C Hamano
2014-03-28 8:35 ` [BUG] MSVC: error box when interrupting `gitlog` by quitting less Marat Radchenko
2014-03-28 9:14 ` Marat Radchenko
2014-03-28 9:44 ` Jeff King
2014-03-28 10:07 ` Marat Radchenko
2014-03-28 10:19 ` Jeff King
2014-03-28 10:28 ` Johannes Sixt
2014-03-28 11:19 ` [PATCH] MSVC: link in invalidcontinue.obj for better POSIX compatibility Marat Radchenko
2014-03-28 18:27 ` Junio C Hamano
2014-03-28 18:46 ` Marat Radchenko
2014-03-28 19:06 ` Junio C Hamano
2014-03-28 20:08 ` [PATCH v2] " Marat Radchenko
2014-03-28 20:35 ` Junio C Hamano
2013-02-20 20:01 ` [PATCH v3 09/19] pkt-line: move a misplaced comment Jeff King
2013-02-20 20:01 ` [PATCH v3 10/19] pkt-line: drop safe_write function Jeff King
2013-02-20 20:02 ` [PATCH v3 11/19] pkt-line: provide a generic reading function with options Jeff King
2013-02-20 20:02 ` [PATCH v3 12/19] pkt-line: teach packet_read_line to chomp newlines Jeff King
2013-02-20 20:02 ` [PATCH v3 13/19] pkt-line: move LARGE_PACKET_MAX definition from sideband Jeff King
2013-02-20 20:02 ` [PATCH v3 14/19] pkt-line: provide a LARGE_PACKET_MAX static buffer Jeff King
2013-02-20 20:04 ` [PATCH v3 15/19] pkt-line: share buffer/descriptor reading implementation Jeff King
2013-02-22 11:22 ` Eric Sunshine
2013-02-20 20:06 ` [PATCH v3 16/19] teach get_remote_heads to read from a memory buffer Jeff King
2013-02-20 20:07 ` [PATCH v3 17/19] remote-curl: pass buffer straight to get_remote_heads Jeff King
2013-02-20 20:07 ` [PATCH v3 18/19] remote-curl: move ref-parsing code up in file Jeff King
2013-02-20 20:07 ` [PATCH v3 19/19] remote-curl: always parse incoming refs Jeff King
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=20130220195147.GA25332@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.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).