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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html