From: Jeff King <peff@peff.net>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
"Shawn O. Pearce" <spearce@spearce.org>
Subject: Re: [PATCH 6/6] fetch-pack: fix deepen shallow over smart http with no-done cap
Date: Thu, 6 Feb 2014 14:42:59 -0500 [thread overview]
Message-ID: <20140206194249.GD14552@sigill.intra.peff.net> (raw)
In-Reply-To: <1391699439-22781-7-git-send-email-pclouds@gmail.com>
On Thu, Feb 06, 2014 at 10:10:39PM +0700, Nguyễn Thái Ngọc Duy wrote:
> In smart http, upload-pack adds new shallow lines at the beginning of
> each rpc response. Only shallow lines from the first rpc call are
> useful. After that they are thrown away. It's designed this way
> because upload-pack is stateless and has no idea when its shallow
> lines are helpful or not.
>
> So after refs are negotiated with multi_ack_detailed and both sides
> happy. The server sends "ACK obj-id ready", terminates the rpc call
> and waits for the final rpc round. The client sends "done". The server
> sends another response, which also has shallow lines at the beginning,
> and the last "ACK obj-id" line.
>
> When no-done is active, the last round is cut out, the server sends
> "ACK obj-id ready" and "ACK obj-id" in the same rpc
> response. fetch-pack is updated to recognize this and not send
> "done". However it still tries to consume shallow lines, which are
> never sent.
>
> Update the code, make sure to skip consuming shallow lines when
> no-done is enabled.
Thanks for a nice explanation.
> +# This test is tricky. We need large enough "have"s that fetch-pack
> +# will put pkt-flush in between. Then we need a "have" the the server
s/the the/the/
> +# does not have, it'll send "ACK %s ready"
> +test_expect_success 'add more commits' '
> + (
> + cd shallow &&
> + for i in $(seq 10); do
This probably needs to be test_seq for portability.
-Peff
next prev parent reply other threads:[~2014-02-06 19:43 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-06 15:10 [PATCH 0/6] Fix the shallow deepen bug with no-done Nguyễn Thái Ngọc Duy
2014-02-06 15:10 ` [PATCH 1/6] test: rename http fetch and push test files Nguyễn Thái Ngọc Duy
2014-02-06 19:33 ` Jeff King
2014-02-06 15:10 ` [PATCH 2/6] t5538: fix default http port Nguyễn Thái Ngọc Duy
2014-02-06 19:35 ` Jeff King
2014-02-07 23:47 ` Jeff King
2014-02-08 7:36 ` Duy Nguyen
2014-02-10 14:39 ` Jeff King
2014-02-10 18:23 ` Junio C Hamano
2014-02-10 19:15 ` Jeff King
2014-02-10 19:16 ` Jeff King
2014-02-10 21:29 ` [PATCH] tests: turn on network daemon tests by default Jeff King
2014-02-11 19:51 ` Junio C Hamano
2014-02-11 20:04 ` Jeff King
2014-02-11 23:58 ` Junio C Hamano
2014-02-12 21:47 ` Jeff King
2014-02-12 22:34 ` Junio C Hamano
2014-02-13 19:35 ` Junio C Hamano
2014-02-14 9:58 ` Jeff King
2014-02-14 16:13 ` Junio C Hamano
2014-02-12 19:06 ` Junio C Hamano
2014-02-12 22:12 ` Jeff King
2014-02-13 1:22 ` Duy Nguyen
2014-02-13 13:21 ` [PATCH] t5537: move http tests out to t5539 Nguyễn Thái Ngọc Duy
2014-02-13 20:14 ` Junio C Hamano
2014-02-06 15:10 ` [PATCH 3/6] pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done' Nguyễn Thái Ngọc Duy
2014-02-06 18:54 ` Junio C Hamano
2014-02-06 15:10 ` [PATCH 4/6] protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt Nguyễn Thái Ngọc Duy
2014-02-06 15:10 ` [PATCH 5/6] protocol-capabilities.txt: document no-done Nguyễn Thái Ngọc Duy
2014-02-06 18:55 ` Junio C Hamano
2014-02-06 19:40 ` Jeff King
2014-02-06 15:10 ` [PATCH 6/6] fetch-pack: fix deepen shallow over smart http with no-done cap Nguyễn Thái Ngọc Duy
2014-02-06 19:16 ` Junio C Hamano
2014-02-07 0:52 ` Duy Nguyen
2014-02-06 19:35 ` Eric Sunshine
2014-02-06 19:42 ` Jeff King [this message]
2014-02-07 18:01 ` Junio C Hamano
2014-02-07 23:39 ` Duy Nguyen
2014-02-10 18:18 ` Junio C Hamano
2014-02-06 19:31 ` [PATCH 0/6] Fix the shallow deepen bug with no-done Junio C Hamano
2014-02-06 19:44 ` Jeff King
2014-02-07 0:47 ` Duy Nguyen
2014-02-07 19:20 ` Jonathan Nieder
2014-02-07 20:03 ` 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=20140206194249.GD14552@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@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).