From: Johan Herland <johan@herland.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Shawn Pearce <spearce@spearce.org>,
Johan Herland <johan@herland.net>,
git@vger.kernel.org
Subject: [PATCHv4 00/10] Push limits
Date: Mon, 23 May 2011 02:51:53 +0200 [thread overview]
Message-ID: <1306111923-16859-1-git-send-email-johan@herland.net> (raw)
Finally, I found some time to re-roll this series. Here's a quick
overview of the changes since the previous iteration:
- Rebased onto 'next' to include the deadlock fix from Peff and J6t.
- Reshuffle the patch series to leave the more contentious patches
towards the end of the series.
- (patch #3) Implement tighter matching rules in server_supports(),
as suggested by Junio in the previous thread.
- Remove --max-object-count from pack-objects and limit-object-count
capability, since object count is not considered a useful metric
for limiting pushes. However, keep the server-side object count
limit, since it is the only metric we can cheaply check on the
server-side (unless we change the pack format to include pack size
and/or commit count). This is now found in patch #10.
- (patch #9) In pack-objects, attempt to estimate the pack size before
we start writing out pack data. Abort as early as possible if the
estimated pack size exceeds the pack size limit. The estimate is
based on the in-pack size of already packed objects (assumed to be
reused as-is). The patch does not attempt to estimate the packed
size of currently loose objects. Therefore, whenever we're pushing
unpacked objects, we end up underestimating the pack size. This is
suboptimal, but ok, since we will still abort the transfer if we
exceed the pack size limit while writing out the pack data.
Have fun! :)
...Johan
Johan Herland (10):
Update technical docs to reflect side-band-64k capability in receive-pack
send-pack: Attempt to retrieve remote status even if pack-objects fails
Tighten rules for matching server capabilities in server_supports()
receive-pack: Prepare for addition of the new 'limit-*' family of capabilities
pack-objects: Teach new option --max-commit-count, limiting #commits in pack
send-pack/receive-pack: Allow server to refuse pushes with too many commits
pack-objects: Allow --max-pack-size to be used together with --stdout
send-pack/receive-pack: Allow server to refuse pushing too large packs
pack-objects: Estimate pack size; abort early if pack size limit is exceeded
receive-pack: Allow server to refuse pushes with too many objects
Documentation/config.txt | 27 ++++
Documentation/git-pack-objects.txt | 11 ++
Documentation/technical/pack-protocol.txt | 5 +-
Documentation/technical/protocol-capabilities.txt | 29 ++++-
builtin/pack-objects.c | 56 ++++++-
builtin/receive-pack.c | 42 +++++-
builtin/send-pack.c | 31 +++--
cache.h | 2 +-
connect.c | 30 ++++-
send-pack.h | 2 +
t/t5300-pack-object.sh | 77 +++++++++
t/t5400-send-pack.sh | 171 +++++++++++++++++++++
12 files changed, 453 insertions(+), 30 deletions(-)
--
1.7.5.rc1.3.g4d7b
next reply other threads:[~2011-05-23 0:52 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-23 0:51 Johan Herland [this message]
2011-05-23 0:51 ` [PATCHv4 01/10] Update technical docs to reflect side-band-64k capability in receive-pack Johan Herland
2011-05-23 0:51 ` [PATCHv4 02/10] send-pack: Attempt to retrieve remote status even if pack-objects fails Johan Herland
2011-05-23 20:06 ` Junio C Hamano
2011-05-23 22:58 ` Johan Herland
2011-05-23 0:51 ` [PATCHv4 03/10] Tighten rules for matching server capabilities in server_supports() Johan Herland
2011-05-23 0:51 ` [PATCHv4 04/10] receive-pack: Prepare for addition of the new 'limit-*' family of capabilities Johan Herland
2011-05-23 20:21 ` Junio C Hamano
2011-05-24 0:16 ` Johan Herland
2011-05-23 0:51 ` [PATCHv4 05/10] pack-objects: Teach new option --max-commit-count, limiting #commits in pack Johan Herland
2011-05-23 23:17 ` Junio C Hamano
2011-05-24 0:18 ` Johan Herland
2011-05-23 0:51 ` [PATCHv4 06/10] send-pack/receive-pack: Allow server to refuse pushes with too many commits Johan Herland
2011-05-23 23:39 ` Junio C Hamano
2011-05-24 1:11 ` Johan Herland
2011-05-23 0:52 ` [PATCHv4 07/10] pack-objects: Allow --max-pack-size to be used together with --stdout Johan Herland
2011-05-24 0:09 ` Junio C Hamano
2011-05-24 1:15 ` Johan Herland
2011-05-23 0:52 ` [PATCHv4 08/10] send-pack/receive-pack: Allow server to refuse pushing too large packs Johan Herland
2011-05-24 0:12 ` Junio C Hamano
2011-05-23 0:52 ` [PATCHv4 09/10] pack-objects: Estimate pack size; abort early if pack size limit is exceeded Johan Herland
2011-05-23 16:11 ` Shawn Pearce
2011-05-23 17:07 ` Johan Herland
2011-05-24 0:18 ` Junio C Hamano
2011-05-24 1:17 ` Johan Herland
2011-05-23 0:52 ` [PATCHv4 10/10] receive-pack: Allow server to refuse pushes with too many objects Johan Herland
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=1306111923-16859-1-git-send-email-johan@herland.net \
--to=johan@herland.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).