Re: [PATCH GSoC v18 00/13] cat-file: add remote-object-info to batch-command
Pablo Sabater <pabloosabaterr@gmail.com> writes:
Show 54 quoted lines
> This patch series is a continuation of Eric Ju's
> (eric.peijian@gmail.com) and Calvin Wan's (calvinwan@google.com) patch
> series [1] and [2] respectively.
>
> Sometimes it is beneficial to retrieve information about an object
> without having to download it completely. The server logic for
> retrieving size has already been implemented and merged in a2ba162cda
> (object-info: support for retrieving object info, 2021-04-20) [3].
> This patch series implement the client option for it.
>
> Eric's series adds the remote-object-info command to cat-file
> --batch-command. This command allows the client to make an object-info
> command request to a server that supports protocol v2.
>
> If the server uses protocol v2 but does not support the object-info
> capability, cat-file --batch-command will die.
>
> If a user attempts to use remote-object-info with protocol v1, cat-file
> --batch-command will die.
>
> Currently, only the size (%(objectsize)) is supported end to end in this
> implementation. The type (%(objecttype)) is known by the client's
> allow-list and request path but is not supported on the server side
> nor the response parsing. A follow up series will add full end-to-end
> support for %(objecttype).
>
> The default format for remote-object-info is set to "%(objectname)
> %(objectsize)". Once %(objecttype) is supported, the default format will
> be unified accordingly.
>
> If the batch command format includes unsupported fields such as
> %(objecttype), %(objectsize:disk), or %(deltabase), the command will
> return empty strings for each unsupported field.
>
> This series completes Eric's work mainly with the refactor of the
> validation of the placeholder with an allow-list that filters what the
> client asks with what the server is capable of provide following Jeff
> King's idea [4].
>
> GitHub CI: https://github.com/pabloosabaterr/git/actions/runs/29404390713
>
> [1]: https://lore.kernel.org/git/20250221190451.12536-1-eric.peijian@gmail.com/
> [2]: https://lore.kernel.org/git/20220728230210.2952731-1-calvinwan@google.com/#t
> [3]: https://git.kernel.org/pub/scm/git/git.git/commit/?id=a2ba162cda2acc171c3e36acbbc854792b093cb7
> [4]: https://lore.kernel.org/git/20250313060250.GH94015@coredump.intra.peff.net/
>
> Changes since v17:
>
> At 10th commit: transport: add client support for object-info
> - style
> - enforced the server response handling, not allowing bare "<oid>" or
> responses with a different number of attributes different from the
> number asked.
>
Some small comments/nits from my side, mostly looks good otherwise :)