All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pablo Sabater" <pabloosabaterr@gmail.com>
To: "Junio C Hamano" <gitster@pobox.com>,
	"Pablo Sabater" <pabloosabaterr@gmail.com>
Cc: <git@vger.kernel.org>, <chandrapratap3519@gmail.com>,
	<karthik.188@gmail.com>, <peff@peff.net>
Subject: Re: [PATCH GSoC v4 4/9] fetch-object-info: use dedicated struct for the results
Date: Tue, 04 Aug 2026 23:42:04 +0200	[thread overview]
Message-ID: <DKGHIZDB5W00.QN7C3PZ77K7B@gmail.com> (raw)
In-Reply-To: <xmqqh5l9txg6.fsf@gitster.g>

On Tue Aug 4, 2026 at 10:58 PM CEST, Junio C Hamano wrote:
> Pablo Sabater <pabloosabaterr@gmail.com> writes:
>
>>  builtin/cat-file.c  | 59 +++++++++-----------------------------
>>  fetch-object-info.c | 81 ++++++++++++++++++++++++++---------------------------
>>  fetch-object-info.h | 27 +++++++++++++-----
>>  object-file.c       | 10 -------
>>  odb.h               |  3 --
>>  transport.c         |  3 +-
>>  transport.h         |  5 ++--
>>  7 files changed, 77 insertions(+), 111 deletions(-)
>
> We lost ~30 lines mostly thanks to losing an intermediate structure
> and need to flip pointer members in it to point at heap allocated
> locations?

Yes, also contributes that the logic that filtered the allow-list is
dropped, and compared to the previous version, no type logic is in
this patch.

>
>> -struct protocol_placeholder_entry {
>> -	const char *option;
>> -	const char *atom;
>> -};
>> -
>> -static const struct protocol_placeholder_entry remote_atom_map[] = {
>> -	{"size", "objectsize"},
>> -	{"type", "objecttype"},
>> -	/*
>> -	 * Add new protocol options here. Even if the server doesn't support
>> -	 * them the allow_list will drop them if the server doesn't advertise
>> -	 * them.
>> -	 */
>> -};
>
> Hmph, it would not make any difference in the final result, as we
> are losing protocol_placeholder_entry and this list of atoms, but
> I am somewhat confused.   Why we already had "type" here, even
> though we are adding support for it much later in the series (and
> unlike the previous iteration, this iteration did not do the
> ask/want_type thing in the previous step)?

The list was designed so even if new placeholder were added, it would be
idemp. because nothing would happen until a server did advertise that
attribute; that's why there's no change in behavior.

It was there because it was interesting for the tests. A known
placeholder but unsupported in the server still outputs an empty string
(this would be the case of: new client vs old server).

This way we had tested:

  unknown + unsupported as %(deltabase) is.
  known + unsupported as %(objecttype) was. (that's why it's on the list)
  knwon + supported as %(objectsize) is.

Using object_info and the list made sense because object_info already had
a type field, so listing type cost nothing. Now that we have to dedicate
an array per attribute it would mean carrying a types array that nobody
fills, so I preferred to drop it here and implement type fully later.

Hope this makes sense,
Pablo

  reply	other threads:[~2026-08-04 21:42 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-25 11:55 [PATCH GSoC 0/5] cat-file: extend remote-object-info to support %(objecttype) Pablo Sabater
2026-07-25 11:55 ` [PATCH GSoC 1/5] protocol-caps: add type support to object-info Pablo Sabater
2026-07-29  9:53   ` Chandra Pratap
2026-07-29 11:18     ` Pablo Sabater
2026-07-29 15:40     ` Junio C Hamano
2026-07-29 22:39   ` Karthik Nayak
2026-07-25 11:55 ` [PATCH GSoC 2/5] fetch-object-info: parse type from server response Pablo Sabater
2026-07-29  9:57   ` Chandra Pratap
2026-07-29 12:05     ` Pablo Sabater
2026-07-29 17:06       ` Chandra Pratap
2026-07-29 22:47   ` Karthik Nayak
2026-07-29 22:53     ` Karthik Nayak
2026-07-25 11:55 ` [PATCH GSoC 3/5] fetch-object-info: request all supported options dynamically Pablo Sabater
2026-07-29  9:57   ` Chandra Pratap
2026-07-29 12:07     ` Pablo Sabater
2026-07-25 11:55 ` [PATCH GSoC 4/5] serve: advertise type capability Pablo Sabater
2026-07-29  9:58   ` Chandra Pratap
2026-07-29 12:15     ` Pablo Sabater
2026-07-25 11:55 ` [PATCH GSoC 5/5] cat-file: unify default format Pablo Sabater
2026-07-29  9:59   ` Chandra Pratap
2026-07-29 12:23     ` Pablo Sabater
2026-07-29  9:52 ` [PATCH GSoC 0/5] cat-file: extend remote-object-info to support %(objecttype) Chandra Pratap
2026-07-29 12:34   ` Pablo Sabater
2026-07-31 19:49 ` [PATCH GSoC v2 0/6] " Pablo Sabater
2026-07-31 19:49   ` [PATCH GSoC v2 1/6] fetch-object-info: request all supported options dynamically Pablo Sabater
2026-07-31 23:16     ` Junio C Hamano
2026-07-31 19:49   ` [PATCH GSoC v2 2/6] t5701: use the test_file_size() helper Pablo Sabater
2026-08-01  4:27     ` Junio C Hamano
2026-08-01 20:49       ` Pablo Sabater
2026-07-31 19:49   ` [PATCH GSoC v2 3/6] protocol-caps: add type support to object-info Pablo Sabater
2026-08-01  4:55     ` Junio C Hamano
2026-07-31 19:49   ` [PATCH GSoC v2 4/6] fetch-object-info: parse type from server response Pablo Sabater
2026-08-01  5:04     ` Junio C Hamano
2026-08-01 13:38       ` Junio C Hamano
2026-08-01 22:20         ` Pablo Sabater
2026-08-01 23:14           ` Jeff King
2026-08-01 23:29             ` Jeff King
2026-08-02  2:02               ` Junio C Hamano
2026-08-02 12:33                 ` Pablo Sabater
2026-08-02 15:43                   ` Jeff King
2026-08-02 16:35                     ` Junio C Hamano
2026-08-02 16:24                   ` Junio C Hamano
2026-08-02 16:38                     ` Jeff King
2026-08-02 22:24                       ` Junio C Hamano
2026-08-01 21:28       ` Pablo Sabater
2026-07-31 19:49   ` [PATCH GSoC v2 5/6] serve: advertise type capability Pablo Sabater
2026-08-01 12:12     ` Chandra Pratap
2026-08-01 21:30       ` Pablo Sabater
2026-07-31 19:49   ` [PATCH GSoC v2 6/6] cat-file: unify default format Pablo Sabater
2026-08-03 14:39 ` [PATCH GSoC v3 0/8] cat-file: extend remote-object-info to support %(objecttype) Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 1/8] t5701: use test_file_size() to get the size of a file Pablo Sabater
2026-08-03 17:21     ` Junio C Hamano
2026-08-03 21:12       ` Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 2/8] fetch-object-info: detect truncated server responses Pablo Sabater
2026-08-03 18:18     ` Junio C Hamano
2026-08-03 21:30       ` Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 3/8] fetch-object-info: pass arguments directly instead of a struct Pablo Sabater
2026-08-03 18:23     ` Junio C Hamano
2026-08-04 15:23     ` Karthik Nayak
2026-08-04 15:34       ` Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 4/8] fetch-object-info: use dedicated struct for the results Pablo Sabater
2026-08-03 18:28     ` Junio C Hamano
2026-08-03 21:46       ` Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 5/8] protocol-caps: add type support to object-info Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 6/8] fetch-object-info: parse type from server response Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 7/8] serve: advertise type capability Pablo Sabater
2026-08-03 14:39   ` [PATCH GSoC v3 8/8] cat-file: unify default format Pablo Sabater
2026-08-04 18:42 ` [PATCH GSoC v4 0/9] cat-file: extend remote-object-info to support %(objecttype) Pablo Sabater
2026-08-04 18:42   ` [PATCH GSoC v4 1/9] t5701: use test_file_size() to get the size of a file Pablo Sabater
2026-08-04 18:42   ` [PATCH GSoC v4 2/9] fetch-object-info: detect malformed server responses Pablo Sabater
2026-08-04 20:40     ` Junio C Hamano
2026-08-04 18:42   ` [PATCH GSoC v4 3/9] fetch-object-info: pass arguments directly instead of a struct Pablo Sabater
2026-08-04 20:44     ` Junio C Hamano
2026-08-06 11:21     ` Karthik Nayak
2026-08-04 18:42   ` [PATCH GSoC v4 4/9] fetch-object-info: use dedicated struct for the results Pablo Sabater
2026-08-04 20:58     ` Junio C Hamano
2026-08-04 21:42       ` Pablo Sabater [this message]
2026-08-04 18:42   ` [PATCH GSoC v4 5/9] fetch-object-info: die() on the remaining error path Pablo Sabater
2026-08-04 18:43   ` [PATCH GSoC v4 6/9] protocol-caps: add type support to object-info Pablo Sabater
2026-08-04 18:43   ` [PATCH GSoC v4 7/9] fetch-object-info: parse type from server response Pablo Sabater
2026-08-04 18:43   ` [PATCH GSoC v4 8/9] serve: advertise type capability Pablo Sabater
2026-08-04 18:43   ` [PATCH GSoC v4 9/9] cat-file: unify default format Pablo Sabater
2026-08-06 17:17   ` [PATCH GSoC v4 0/9] cat-file: extend remote-object-info to support %(objecttype) Jeff King
2026-08-07  0:30     ` Pablo Sabater
2026-08-07 23:19       ` Jeff King
2026-08-07 22:06 ` [PATCH GSoC v5 00/10] " Pablo Sabater
2026-08-07 22:06   ` [PATCH GSoC v5 01/10] t5701: use test_file_size() to get the size of a file Pablo Sabater
2026-08-07 22:06   ` [PATCH GSoC v5 02/10] fetch-object-info: detect malformed server responses Pablo Sabater
2026-08-07 22:06   ` [PATCH GSoC v5 03/10] fetch-object-info: pass arguments directly instead of a struct Pablo Sabater
2026-08-07 22:06   ` [PATCH GSoC v5 04/10] fetch-object-info: use dedicated struct for the results Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 05/10] fetch-object-info: die() on the remaining error path Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 06/10] transport: drop remote object-info fields from transport struct Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 07/10] protocol-caps: add type support to object-info Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 08/10] fetch-object-info: parse type from server response Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 09/10] serve: advertise type capability Pablo Sabater
2026-08-07 22:07   ` [PATCH GSoC v5 10/10] cat-file: unify default format Pablo Sabater
2026-08-07 23:12   ` [PATCH GSoC v5 00/10] cat-file: extend remote-object-info to support %(objecttype) Pablo Sabater
2026-08-08  0:02 ` [PATCH GSoC v6 " Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 01/10] t5701: use test_file_size() to get the size of a file Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 02/10] fetch-object-info: detect malformed server responses Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 03/10] fetch-object-info: pass arguments directly instead of a struct Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 04/10] fetch-object-info: use dedicated struct for the results Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 05/10] fetch-object-info: die() on the remaining error path Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 06/10] transport: drop remote object-info fields from transport struct Pablo Sabater
2026-08-08 16:21     ` Junio C Hamano
2026-08-08 18:59       ` Chandra Pratap
2026-08-08  0:02   ` [PATCH GSoC v6 07/10] protocol-caps: add type support to object-info Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 08/10] fetch-object-info: parse type from server response Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 09/10] serve: advertise type capability Pablo Sabater
2026-08-08  0:02   ` [PATCH GSoC v6 10/10] cat-file: unify default format Pablo Sabater
2026-08-08  7:41   ` [PATCH GSoC v6 00/10] cat-file: extend remote-object-info to support %(objecttype) 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=DKGHIZDB5W00.QN7C3PZ77K7B@gmail.com \
    --to=pabloosabaterr@gmail.com \
    --cc=chandrapratap3519@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=karthik.188@gmail.com \
    --cc=peff@peff.net \
    /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.