From: Karthik Nayak Date: Wed, 15 Jul 2026 22:35:03 GMT Subject: Re: [PATCH GSoC v18 00/13] cat-file: add remote-object-info to batch-command Message-ID: In-Reply-To: <20260715-ps-eric-work-rebase-v18-0-34d7adb051bb@gmail.com> Pablo Sabater writes: > 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 "" or > responses with a different number of attributes different from the > number asked. > Some small comments/nits from my side, mostly looks good otherwise :)