From: Brandon Williams <bmwill@google.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: git@vger.kernel.org, jonathantanmy@google.com, gitster@pobox.com,
sbeller@google.com
Subject: Re: [PATCH v3 8/8] fetch-pack: implement ref-in-want
Date: Mon, 25 Jun 2018 11:08:49 -0700 [thread overview]
Message-ID: <20180625180849.GA19910@google.com> (raw)
In-Reply-To: <20180622230119.GL12013@aiede.svl.corp.google.com>
On 06/22, Jonathan Nieder wrote:
> Hi,
>
> Brandon Williams wrote:
>
> > Implement ref-in-want on the client side so that when a server supports
> > the "ref-in-want" feature, a client will send "want-ref" lines for each
> > reference the client wants to fetch.
> >
> > Signed-off-by: Brandon Williams <bmwill@google.com>
> > ---
> > fetch-pack.c | 35 +++++++++++++++++++++++++++---
> > remote.c | 1 +
> > remote.h | 1 +
> > t/t5703-upload-pack-ref-in-want.sh | 4 ++--
> > 4 files changed, 36 insertions(+), 5 deletions(-)
>
> This commit message doesn't tell me what ref-in-want is or is for. Could
> it include
>
> A. a pointer to Documentation/technical/protocol-v2.txt, or
> B. an example illustrating the effect e.g. using GIT_TRACE_PACKET
>
> or both?
Yeah I can imporve the message here.
> > +
> > + for (r = refs; r; r = r->next) {
> > + if (!strcmp(end, r->name)) {
> > + oidcpy(&r->old_oid, &oid);
> > + break;
> > + }
>
> Stefan mentioned that the spec says
>
> * The server MUST NOT send any refs which were not requested
> using 'want-ref' lines.
>
> Can client enforce that? If not, can the spec say SHOULD NOT for the
> server and add a MUST describing appropriate client behavior?
Yeah I can update the docs in an earlier patch.
>
> > + }
> > + }
> > +
> > + if (reader->status != PACKET_READ_DELIM)
>
> The spec says
>
> * This section is only included if the client has requested a
> ref using a 'want-ref' line and if a packfile section is also
> included in the response.
>
> What should happen if the client already has all the relevant objects
> (or in other words if there is no packfile to send in the packfile
> section)? Is the idea that the client should already have known that
> based on the ref advertisement? What if ref values change to put us
> in that state between the ls-refs and fetch steps?
I believe the current functionality is that if all wants are already
satisfied by all haves then an empty packfile is sent, so that would
fall under that case.
--
Brandon Williams
next prev parent reply other threads:[~2018-06-25 18:08 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 17:51 [PATCH 0/8] ref-in-want Brandon Williams
2018-06-05 17:51 ` [PATCH 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-05 17:51 ` [PATCH 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-05 19:11 ` Ramsay Jones
2018-06-05 20:32 ` Ævar Arnfjörð Bjarmason
2018-06-06 21:32 ` Brandon Williams
2018-06-06 22:42 ` Ævar Arnfjörð Bjarmason
2018-06-06 22:45 ` Brandon Williams
2018-06-05 17:51 ` [PATCH 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-05 17:51 ` [PATCH 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-05 17:51 ` [PATCH 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-05 17:51 ` [PATCH 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-05 17:51 ` [PATCH 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-05 17:51 ` [PATCH 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-06-13 21:39 ` [PATCH v2 0/8] ref-in-want Brandon Williams
2018-06-13 21:39 ` [PATCH v2 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-14 18:09 ` Stefan Beller
2018-06-14 19:21 ` Brandon Williams
2018-06-13 21:39 ` [PATCH v2 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-14 18:40 ` Stefan Beller
2018-06-14 18:52 ` Brandon Williams
2018-06-15 21:08 ` Junio C Hamano
2018-06-15 21:14 ` Junio C Hamano
2018-06-19 18:50 ` Brandon Williams
2018-06-19 20:37 ` Junio C Hamano
2018-06-19 23:14 ` Brandon Williams
2018-06-21 16:38 ` Junio C Hamano
2018-06-13 21:39 ` [PATCH v2 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-14 19:23 ` Stefan Beller
2018-06-13 21:39 ` [PATCH v2 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-13 21:39 ` [PATCH v2 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-13 21:39 ` [PATCH v2 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-14 19:32 ` Stefan Beller
2018-06-13 21:39 ` [PATCH v2 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-14 19:42 ` Stefan Beller
2018-06-14 23:59 ` Jonathan Tan
2018-06-19 17:41 ` Brandon Williams
2018-06-13 21:39 ` [PATCH v2 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-06-14 19:56 ` Stefan Beller
2018-06-14 21:18 ` Brandon Williams
2018-06-22 22:29 ` Jonathan Nieder
2018-06-15 21:20 ` [PATCH v2 0/8] ref-in-want Junio C Hamano
2018-06-18 18:05 ` Brandon Williams
2018-06-20 21:32 ` [PATCH v3 " Brandon Williams
2018-06-20 21:32 ` [PATCH v3 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-22 21:12 ` Jonathan Nieder
2018-06-20 21:32 ` [PATCH v3 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-25 17:40 ` Jonathan Tan
2018-06-25 18:09 ` Jonathan Tan
2018-06-25 18:20 ` Brandon Williams
2018-06-20 21:32 ` [PATCH v3 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-20 21:32 ` [PATCH v3 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-25 17:45 ` Jonathan Tan
2018-06-20 21:32 ` [PATCH v3 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-22 21:26 ` Jonathan Nieder
2018-06-22 21:42 ` Jonathan Nieder
2018-06-20 21:32 ` [PATCH v3 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-20 21:32 ` [PATCH v3 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-25 18:03 ` Jonathan Tan
2018-06-25 18:18 ` Brandon Williams
2018-06-20 21:32 ` [PATCH v3 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-06-22 23:01 ` Jonathan Nieder
2018-06-25 18:08 ` Brandon Williams [this message]
2018-06-25 18:53 ` [PATCH v4 0/8] ref-in-want Brandon Williams
2018-06-25 18:53 ` [PATCH v4 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-25 18:53 ` [PATCH v4 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-25 18:53 ` [PATCH v4 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-25 22:27 ` Jonathan Tan
2018-06-25 18:53 ` [PATCH v4 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-25 18:53 ` [PATCH v4 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-25 18:53 ` [PATCH v4 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-25 22:36 ` Jonathan Tan
2018-06-25 18:53 ` [PATCH v4 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-25 18:53 ` [PATCH v4 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-06-25 23:03 ` [PATCH v4 0/8] ref-in-want Jonathan Tan
2018-06-26 20:54 ` [PATCH v5 " Brandon Williams
2018-06-26 20:54 ` [PATCH v5 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-26 20:54 ` [PATCH v5 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-26 21:25 ` Junio C Hamano
2018-06-27 18:05 ` Brandon Williams
2018-06-27 18:53 ` Junio C Hamano
2018-06-27 20:46 ` Brandon Williams
2018-06-27 20:59 ` Stefan Beller
2018-06-27 18:06 ` Jonathan Tan
2018-06-26 20:54 ` [PATCH v5 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-26 21:34 ` Junio C Hamano
2018-06-27 18:09 ` Brandon Williams
2018-06-27 17:58 ` Jonathan Tan
2018-06-26 20:54 ` [PATCH v5 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-26 20:54 ` [PATCH v5 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-26 20:54 ` [PATCH v5 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-26 21:40 ` Junio C Hamano
2018-06-26 20:54 ` [PATCH v5 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-26 21:42 ` Junio C Hamano
2018-06-27 18:15 ` Brandon Williams
2018-06-26 20:54 ` [PATCH v5 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-06-27 18:09 ` Jonathan Tan
2018-06-27 18:18 ` Brandon Williams
2018-06-27 22:30 ` [PATCH v6 0/8] ref-in-want Brandon Williams
2018-06-27 22:30 ` [PATCH v6 1/8] test-pkt-line: add unpack-sideband subcommand Brandon Williams
2018-06-27 22:30 ` [PATCH v6 2/8] upload-pack: implement ref-in-want Brandon Williams
2018-06-27 22:30 ` [PATCH v6 3/8] upload-pack: test negotiation with changing repository Brandon Williams
2018-06-27 22:30 ` [PATCH v6 4/8] fetch: refactor the population of peer ref OIDs Brandon Williams
2018-06-27 22:30 ` [PATCH v6 5/8] fetch: refactor fetch_refs into two functions Brandon Williams
2018-06-27 22:30 ` [PATCH v6 6/8] fetch: refactor to make function args narrower Brandon Williams
2018-06-27 22:30 ` [PATCH v6 7/8] fetch-pack: put shallow info in output parameter Brandon Williams
2018-06-27 22:30 ` [PATCH v6 8/8] fetch-pack: implement ref-in-want Brandon Williams
2018-07-22 9:20 ` Duy Nguyen
2018-07-23 17:53 ` Brandon Williams
2018-07-23 18:13 ` Duy Nguyen
2018-07-23 21:28 ` Jonathan Nieder
2018-07-23 17:56 ` [PATCH] fetch-pack: mark die strings for translation Brandon Williams
2018-07-23 18:14 ` Stefan Beller
2018-07-23 21:29 ` Jonathan Nieder
2018-07-23 22:57 ` Junio C Hamano
2018-07-23 22:59 ` Junio C Hamano
2018-07-23 23:00 ` Brandon Williams
2018-06-15 19:04 ` [PATCH 0/8] ref-in-want Jonathan Tan
2018-06-19 17:32 ` Brandon Williams
2018-06-19 19:23 ` Jonathan Tan
2018-06-19 23:16 ` Brandon Williams
2018-06-19 23:38 ` Jonathan Tan
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=20180625180849.GA19910@google.com \
--to=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=jrnieder@gmail.com \
--cc=sbeller@google.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.