All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pablo Sabater <pabloosabaterr@gmail.com>
To: git@vger.kernel.org
Cc: pabloosabaterr@gmail.com, chandrapratap3519@gmail.com,
	chriscool@tuxfamily.org, eric.peijian@gmail.com,
	gitster@pobox.com, jltobler@gmail.com, karthik.188@gmail.com,
	peff@peff.net, toon@iotcl.com
Subject: [PATCH GSoC v19 09/13] protocol-caps: check object existence regardless of the attributes requested
Date: Fri, 17 Jul 2026 17:05:19 +0200	[thread overview]
Message-ID: <20260717-ps-eric-work-rebase-v19-9-d4faee35764b@gmail.com> (raw)
In-Reply-To: <20260717-ps-eric-work-rebase-v19-0-d4faee35764b@gmail.com>

Currently, send_info() only checks for existence when the attribute
'size' is also requested. Requesting a bare OID, without attributes only
echoes back the OID.

Extract the existence check to be done regardless of the number of
attributes requested.

While at it, introduce a wrapper called get_object_info() similar to
odb_read_object_info() that returns OBJ_BAD on fail and adds
OBJECT_INFO_SKIP_FETCH_OBJECT and OBJECT_INFO_QUICK flags.
OBJECT_INFO_SKIP_FETCH_OBJECT is so a server with a partial clone
doesn't trigger fetching objects when it gets an object-info request
with an OID that is not available locally. A server should only report
what it has locally.

Tighten the condition used to determine whether an object is
recognized. get_object_info() returns OBJ_BAD for unknown objects,
but OBJ_NONE (0) can also mean "not found". Change the check from '< 0'
to '<= OBJ_NONE' to cover both as unrecognized.

With this patch, a bare OID has two possible responses:

1. Recognized OID: the server answers with "<OID>"

2. Unrecognized OID: the server answers with "<OID> SP"

Update the object-info section in 'gitprotocol-v2.adoc':
- Require full obj-oid explicitly.
- Fix parentheses.
- Define obj-size explicitly.
- Make obj-size optional in obj-info and document the behavior
  for unrecognized object IDs.
- Describe the attr header as zero or more pkt-lines, one per attribute,
  matching what the server implements. A request with no attributes gets
  no header.

Signed-off-by: Pablo Sabater <pabloosabaterr@gmail.com>
---
 Documentation/gitprotocol-v2.adoc | 21 ++++++++-----
 protocol-caps.c                   | 45 ++++++++++++++++++++++++----
 t/t5701-git-serve.sh              | 63 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 115 insertions(+), 14 deletions(-)

diff --git a/Documentation/gitprotocol-v2.adoc b/Documentation/gitprotocol-v2.adoc
index 2beb70595f..7bf62014c3 100644
--- a/Documentation/gitprotocol-v2.adoc
+++ b/Documentation/gitprotocol-v2.adoc
@@ -568,21 +568,26 @@ An `object-info` request takes the following arguments:
 
 	oid <oid>
 	Indicates to the server an object which the client wants to obtain
-	information for.
+	information for. They must be full OIDs.
 
-The response of `object-info` is a list of the requested object ids
-and associated requested information, each separated by a single space.
+The response of `object-info` consists of one pkt-line per requested attribute,
+echoing the attributes the server will report, followed by one pkt-line per
+requested object id with its information, each field separated by a single
+space.
 
 	output = info flush-pkt
 
-	info = PKT-LINE(attrs) LF)
-		*PKT-LINE(obj-info LF)
-
-	attrs = attr | attrs SP attrs
+	info = *PKT-LINE(attr LF)
+	       *PKT-LINE(obj-info LF)
 
 	attr = "size"
 
-	obj-info = obj-id SP obj-size
+	obj-size = 1*DIGIT
+
+	obj-info = obj-id [SP [obj-size]]
+
+If the server does not recognize the OID, the response will be `<oid> SP`
+regardless of the number of attributes requested.
 
 bundle-uri
 ~~~~~~~~~~
diff --git a/protocol-caps.c b/protocol-caps.c
index 8858ea4489..02261be14d 100644
--- a/protocol-caps.c
+++ b/protocol-caps.c
@@ -30,6 +30,32 @@ static int parse_oid(const char *line, struct string_list *oid_str_list)
 	return 1;
 }
 
+/*
+ * odb_read_object_info_extended() wrapper. Similar to odb_read_object_info()
+ * but uses the flags:
+ *
+ * - OBJECT_INFO_SKIP_FETCH_OBJECT so a server won't fetch an object when a
+ *   object-info request asks for an OID that it doesn't have.
+ *
+ * - OBJECT_INFO_QUICK to avoid re-scanning packs when the object is not found.
+ */
+static enum object_type get_object_info(struct object_database *odb,
+			   const struct object_id *oid,
+			   size_t *sizep)
+{
+	enum object_type type;
+	struct object_info oi = OBJECT_INFO_INIT;
+
+	oi.typep = &type;
+	oi.sizep = sizep;
+	if (odb_read_object_info_extended(odb, oid, &oi,
+					  OBJECT_INFO_LOOKUP_REPLACE |
+					  OBJECT_INFO_SKIP_FETCH_OBJECT |
+					  OBJECT_INFO_QUICK) < 0)
+		return OBJ_BAD;
+	return type;
+}
+
 /*
  * Validates and send requested info back to the client. Any errors detected
  * are returned as they are detected.
@@ -62,15 +88,22 @@ static void send_info(struct repository *r, struct packet_writer *writer,
 
 		strbuf_addstr(&send_buffer, oid_str);
 
+		/*
+		 * Check the existence of the object first.
+		 * If an object is not recognized by the server append SP to
+		 * the response.
+		 */
+		if (get_object_info(r->objects, &oid, &object_size) <= OBJ_NONE) {
+			strbuf_addstr(&send_buffer, " ");
+			goto write;
+		}
+
 		if (info->size) {
-			if (odb_read_object_info(r->objects, &oid, &object_size) < 0) {
-				strbuf_addstr(&send_buffer, " ");
-			} else {
-				strbuf_addf(&send_buffer, " %"PRIuMAX,
-					    (uintmax_t)object_size);
-			}
+			strbuf_addf(&send_buffer, " %"PRIuMAX,
+				    (uintmax_t)object_size);
 		}
 
+write:
 		packet_writer_write(writer, "%s", send_buffer.buf);
 		strbuf_reset(&send_buffer);
 	}
diff --git a/t/t5701-git-serve.sh b/t/t5701-git-serve.sh
index d4c28bae39..cacff4456c 100755
--- a/t/t5701-git-serve.sh
+++ b/t/t5701-git-serve.sh
@@ -7,6 +7,8 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
 . ./test-lib.sh
 
+unknown_oid=$(printf "test" | git hash-object --stdin)
+
 test_expect_success 'setup to generate files with expected content' '
 	printf "agent=git/%s" "$(git version | cut -d" " -f3)" >agent_capability &&
 
@@ -364,6 +366,67 @@ test_expect_success 'basics of object-info' '
 	test_cmp expect actual
 '
 
+test_expect_success 'bare OID request' '
+	test_config transfer.advertiseObjectInfo true &&
+
+	test-tool pkt-line pack >in <<-EOF &&
+	command=object-info
+	object-format=$(test_oid algo)
+	0001
+	oid $(git rev-parse two:two.t)
+	0000
+	EOF
+
+	cat >expect <<-EOF &&
+	$(git rev-parse two:two.t)
+	0000
+	EOF
+
+	test-tool serve-v2 --stateless-rpc <in >out &&
+	test-tool pkt-line unpack <out >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success 'object-info with bare unrecognized OID' '
+	test_config transfer.advertiseObjectInfo true &&
+
+	test-tool pkt-line pack >in <<-EOF &&
+	command=object-info
+	object-format=$(test_oid algo)
+	0001
+	oid $unknown_oid
+	0000
+	EOF
+
+	printf "%s \n" "$unknown_oid" >expect &&
+	printf "0000\n" >>expect &&
+
+	test-tool serve-v2 --stateless-rpc <in >out &&
+	test-tool pkt-line unpack <out >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success 'object-info with size for unrecognized OID' '
+	test_config transfer.advertiseObjectInfo true &&
+
+	test-tool pkt-line pack >in <<-EOF &&
+	command=object-info
+	object-format=$(test_oid algo)
+	0001
+	size
+	oid $unknown_oid
+	0000
+	EOF
+
+	printf "size\n" >expect &&
+	printf "%s \n" "$unknown_oid" >>expect &&
+	printf "0000\n" >>expect &&
+
+	test-tool serve-v2 --stateless-rpc <in >out &&
+	test-tool pkt-line unpack <out >actual &&
+	test_cmp expect actual
+'
+
 test_expect_success 'test capability advertisement with uploadpack.advertiseBundleURIs' '
 	test_config uploadpack.advertiseBundleURIs true &&
 

-- 
2.54.0

  parent reply	other threads:[~2026-07-17 15:05 UTC|newest]

Thread overview: 378+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-28 19:04 [PATCH 0/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-06-28 19:04 ` [PATCH 1/6] fetch-pack: refactor packet writing Eric Ju
2024-07-04 16:59   ` Karthik Nayak
2024-07-08 15:17     ` Peijian Ju
2024-07-10  9:39       ` Karthik Nayak
2024-07-15 16:40         ` Peijian Ju
2024-06-28 19:04 ` [PATCH 2/6] fetch-pack: move fetch initialization Eric Ju
2024-06-28 19:05 ` [PATCH 3/6] serve: advertise object-info feature Eric Ju
2024-06-28 19:05 ` [PATCH 4/6] transport: add client support for object-info Eric Ju
2024-07-09  7:15   ` Toon claes
2024-07-09 16:37     ` Junio C Hamano
2024-07-13  2:32       ` Peijian Ju
2024-07-13  2:30     ` Peijian Ju
2024-07-10 10:13   ` Karthik Nayak
2024-07-16  2:39     ` Peijian Ju
2024-06-28 19:05 ` [PATCH 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-07-10 10:16   ` Karthik Nayak
2024-07-16  2:59     ` Peijian Ju
2024-06-28 19:05 ` [PATCH 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-07-09  1:50   ` Justin Tobler
2024-07-12 17:41     ` Peijian Ju
2024-07-09  7:16   ` Toon claes
2024-07-13  2:35     ` Peijian Ju
2024-07-10 12:08   ` Karthik Nayak
2024-07-17  2:38     ` Peijian Ju
2024-07-20  3:43 ` [PATCH v2 0/6] " Eric Ju
2024-07-20  3:43   ` [PATCH v2 1/6] fetch-pack: refactor packet writing Eric Ju
2024-09-24 11:45     ` Christian Couder
2024-09-25 20:42       ` Peijian Ju
2024-07-20  3:43   ` [PATCH v2 2/6] fetch-pack: move fetch initialization Eric Ju
2024-07-20  3:43   ` [PATCH v2 3/6] serve: advertise object-info feature Eric Ju
2024-07-20  3:43   ` [PATCH v2 4/6] transport: add client support for object-info Eric Ju
2024-09-24 11:45     ` Christian Couder
2024-09-24 17:29       ` Junio C Hamano
2024-09-25 18:29       ` Peijian Ju
2024-07-20  3:43   ` [PATCH v2 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-07-20  3:43   ` [PATCH v2 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-09-11 13:11     ` Toon Claes
2024-09-25 18:18       ` Peijian Ju
2024-09-24 12:13     ` Christian Couder
2024-09-25 18:12       ` Peijian Ju
2024-08-22 21:24 ` [PATCH 0/6] " Peijian Ju
2024-09-26  1:38 ` [PATCH v3 " Eric Ju
2024-09-26  1:38   ` [PATCH v3 1/6] fetch-pack: refactor packet writing Eric Ju
2024-09-26  1:38   ` [PATCH v3 2/6] fetch-pack: move fetch initialization Eric Ju
2024-09-26  1:38   ` [PATCH v3 3/6] serve: advertise object-info feature Eric Ju
2024-09-26  1:38   ` [PATCH v3 4/6] transport: add client support for object-info Eric Ju
2024-10-23  9:48     ` Christian Couder
2024-10-24 20:23       ` Peijian Ju
2024-09-26  1:38   ` [PATCH v3 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-09-26  1:38   ` [PATCH v3 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-10-23  9:49     ` Christian Couder
2024-10-23 20:25       ` Taylor Blau
2024-10-24 20:28         ` Peijian Ju
2024-10-24 20:28       ` Peijian Ju
2024-10-24 20:53 ` [PATCH v4 0/6] " Eric Ju
2024-10-24 20:53   ` [PATCH v4 1/6] fetch-pack: refactor packet writing Eric Ju
2024-10-25  9:52     ` karthik nayak
2024-10-25 16:06       ` Peijian Ju
2024-10-24 20:53   ` [PATCH v4 2/6] fetch-pack: move fetch initialization Eric Ju
2024-10-24 20:53   ` [PATCH v4 3/6] serve: advertise object-info feature Eric Ju
2024-10-24 20:53   ` [PATCH v4 4/6] transport: add client support for object-info Eric Ju
2024-10-25 10:12     ` karthik nayak
2024-10-28  5:39       ` Peijian Ju
2024-10-24 20:53   ` [PATCH v4 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-10-24 20:53   ` [PATCH v4 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-10-25 10:53     ` karthik nayak
2024-10-25 13:55       ` Christian Couder
2024-10-25 20:56   ` [PATCH v4 0/6] " Taylor Blau
2024-10-27  3:54     ` Peijian Ju
2024-10-28  0:01       ` Taylor Blau
2024-10-28 20:34 ` [PATCH v5 " Eric Ju
2024-10-28 20:34   ` [PATCH v5 1/6] fetch-pack: refactor packet writing Eric Ju
2024-11-05 17:44     ` Christian Couder
2024-11-06  1:06       ` Junio C Hamano
2024-11-06 18:00         ` Peijian Ju
2024-11-06 19:50       ` Peijian Ju
2024-10-28 20:34   ` [PATCH v5 2/6] fetch-pack: move fetch initialization Eric Ju
2024-10-28 20:34   ` [PATCH v5 3/6] serve: advertise object-info feature Eric Ju
2024-10-28 20:34   ` [PATCH v5 4/6] transport: add client support for object-info Eric Ju
2024-10-28 20:34   ` [PATCH v5 5/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-10-28 20:34   ` [PATCH v5 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-08 16:24 ` [PATCH v6 0/6] " Eric Ju
2024-11-08 16:24   ` [PATCH v6 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-11-08 16:24   ` [PATCH v6 2/6] fetch-pack: refactor packet writing Eric Ju
2024-11-08 16:24   ` [PATCH v6 3/6] fetch-pack: move fetch initialization Eric Ju
2024-11-08 16:24   ` [PATCH v6 4/6] serve: advertise object-info feature Eric Ju
2024-11-08 16:24   ` [PATCH v6 5/6] transport: add client support for object-info Eric Ju
2024-11-08 16:24   ` [PATCH v6 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-11  4:38   ` [PATCH v6 0/6] " Junio C Hamano
2024-11-18 16:28     ` Peijian Ju
2024-11-19  0:16       ` Junio C Hamano
2024-11-19  6:31         ` Patrick Steinhardt
2024-11-19  6:48           ` Junio C Hamano
2024-11-19 16:35             ` Peijian Ju
2024-11-20  1:19               ` Junio C Hamano
2024-11-25  5:36 ` [PATCH v7 " Eric Ju
2024-11-25  5:36   ` [PATCH v7 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:26       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 2/6] fetch-pack: refactor packet writing Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:09       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 3/6] fetch-pack: move fetch initialization Eric Ju
2024-11-25  5:36   ` [PATCH v7 4/6] serve: advertise object-info feature Eric Ju
2024-11-25  5:36   ` [PATCH v7 5/6] transport: add client support for object-info Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03  3:15       ` Peijian Ju
2024-11-25  5:36   ` [PATCH v7 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2024-11-25  9:51     ` Patrick Steinhardt
2024-12-03 19:23       ` Peijian Ju
2024-12-05  9:50         ` Patrick Steinhardt
2024-12-05 10:34           ` Christian Couder
2024-12-23 23:25 ` [PATCH v8 0/6] " Eric Ju
2024-12-23 23:25   ` [PATCH v8 1/6] cat-file: add declaration of variable i inside its for loop Eric Ju
2024-12-23 23:25   ` [PATCH v8 2/6] fetch-pack: refactor packet writing Eric Ju
2024-12-23 23:25   ` [PATCH v8 3/6] fetch-pack: move fetch initialization Eric Ju
2024-12-23 23:25   ` [PATCH v8 4/6] serve: advertise object-info feature Eric Ju
2024-12-23 23:25   ` [PATCH v8 5/6] transport: add client support for object-info Eric Ju
2025-01-07 18:31     ` Calvin Wan
2025-01-07 18:53       ` Junio C Hamano
2025-01-08 15:55       ` Peijian Ju
2024-12-23 23:25   ` [PATCH v8 6/6] cat-file: add remote-object-info to batch-command Eric Ju
2025-01-07 21:29     ` Calvin Wan
2024-12-26 21:56   ` [PATCH v8 0/6] " Junio C Hamano
2024-12-30 23:25     ` Peijian Ju
2025-01-08 18:37 ` [PATCH v9 0/8] cat-file: " Eric Ju
2025-01-08 18:37   ` [PATCH v9 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-01-10 11:33     ` Christian Couder
2025-01-14  1:39       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-01-10 11:39     ` Christian Couder
2025-01-14  1:36       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 3/8] cat-file: split test utility functions into a separate library file Eric Ju
2025-01-10 14:26     ` Christian Couder
2025-01-14  1:33       ` Peijian Ju
2025-01-08 18:37   ` [PATCH v9 4/8] fetch-pack: refactor packet writing Eric Ju
2025-01-08 18:37   ` [PATCH v9 5/8] fetch-pack: move fetch initialization Eric Ju
2025-01-08 18:37   ` [PATCH v9 6/8] serve: advertise object-info feature Eric Ju
2025-01-08 18:37   ` [PATCH v9 7/8] transport: add client support for object-info Eric Ju
2025-01-08 18:37   ` [PATCH v9 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-01-10 11:20     ` Christian Couder
2025-01-14  1:24       ` Peijian Ju
2025-01-14  2:14 ` [PATCH v10 0/8] " Eric Ju
2025-01-14  2:14   ` [PATCH v10 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-01-14  2:14   ` [PATCH v10 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-01-14  2:14   ` [PATCH v10 3/8] t1006: split test utility functions into new "lib-cat-file.sh" Eric Ju
2025-01-14  2:14   ` [PATCH v10 4/8] fetch-pack: refactor packet writing Eric Ju
2025-01-14  2:14   ` [PATCH v10 5/8] fetch-pack: move fetch initialization Eric Ju
2025-01-14  2:14   ` [PATCH v10 6/8] serve: advertise object-info feature Eric Ju
2025-01-14  2:14   ` [PATCH v10 7/8] transport: add client support for object-info Eric Ju
2025-02-01  2:08     ` Jeff King
2025-02-20 22:52       ` Peijian Ju
2025-01-14  2:15   ` [PATCH v10 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-02-01  2:03     ` Jeff King
2025-02-21 15:34       ` Peijian Ju
2025-02-24 23:45         ` Jeff King
2025-03-12 19:53           ` Peijian Ju
2025-02-21 19:04 ` [PATCH v11 0/8] " Eric Ju
2025-02-21 19:04   ` [PATCH v11 1/8] git-compat-util: add strtoul_ul() with error handling Eric Ju
2025-02-21 19:04   ` [PATCH v11 2/8] cat-file: add declaration of variable i inside its for loop Eric Ju
2025-02-21 19:04   ` [PATCH v11 3/8] t1006: split test utility functions into new "lib-cat-file.sh" Eric Ju
2025-02-21 19:04   ` [PATCH v11 4/8] fetch-pack: refactor packet writing Eric Ju
2025-02-21 19:04   ` [PATCH v11 5/8] fetch-pack: move fetch initialization Eric Ju
2025-02-21 19:04   ` [PATCH v11 6/8] serve: advertise object-info feature Eric Ju
2025-02-21 19:04   ` [PATCH v11 7/8] transport: add client support for object-info Eric Ju
2025-02-21 19:04   ` [PATCH v11 8/8] cat-file: add remote-object-info to batch-command Eric Ju
2025-02-24 20:46     ` Junio C Hamano
2025-03-11 23:10       ` Peijian Ju
2025-02-24 23:47     ` Jeff King
2025-03-12  2:19       ` Peijian Ju
2025-03-13  6:02         ` Jeff King
2025-03-21 18:24           ` Peijian Ju
2025-03-24  3:39             ` Jeff King
2026-03-12 21:41               ` [GSoC] " Pablo Sabater
2026-06-08 10:14   ` [PATCH GSoC RFC v12 00/12] " Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 01/12] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 02/12] git-compat-util: add strtoul_ul() with error handling Pablo Sabater
2026-06-09  6:20       ` Chandra Pratap
2026-06-08 10:14     ` [PATCH GSoC RFC v12 03/12] cat-file: add declaration of variable i inside its for loop Pablo Sabater
2026-06-08 14:52       ` Junio C Hamano
2026-06-09 17:55         ` Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 04/12] t1006: split test utility functions into new "lib-cat-file.sh" Pablo Sabater
2026-06-09  6:28       ` Chandra Pratap
2026-06-09 17:44         ` Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 05/12] fetch-pack: move function to connect.c Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 06/12] connect: refactor packet writing Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 07/12] fetch-pack: move fetch initialization Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 08/12] serve: advertise object-info feature Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 09/12] transport: add client support for object-info Pablo Sabater
2026-06-16 20:35       ` Junio C Hamano
2026-06-16 21:31         ` Junio C Hamano
2026-06-08 10:14     ` [PATCH GSoC RFC v12 10/12] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 11/12] cat-file: validate remote atoms with allow_list Pablo Sabater
2026-06-08 10:14     ` [PATCH GSoC RFC v12 12/12] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-06-09 15:32       ` Chandra Pratap
2026-06-09 17:34         ` Pablo Sabater
2026-06-17 10:16           ` Chandra Pratap
2026-06-09 18:54         ` Junio C Hamano
2026-06-19 14:56     ` [PATCH GSoC RFC v13 00/12] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 01/12] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 02/12] git-compat-util: add strtoul_ul() with error handling Pablo Sabater
2026-06-19 15:06         ` Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 03/12] cat-file: declare loop counter inside for() Pablo Sabater
2026-06-22 10:08         ` Karthik Nayak
2026-06-19 14:56       ` [PATCH GSoC RFC v13 04/12] t1006: split test utility functions into new "lib-cat-file.sh" Pablo Sabater
2026-06-19 15:02         ` Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 05/12] fetch-pack: move function to connect.c Pablo Sabater
2026-06-21  5:37         ` Chandra Pratap
2026-06-24 12:24           ` Pablo Sabater
2026-06-22 10:30         ` Karthik Nayak
2026-06-24 12:21           ` Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 06/12] connect: refactor packet writing Pablo Sabater
2026-06-22 20:43         ` Karthik Nayak
2026-06-24 12:08           ` Pablo Sabater
2026-06-24 13:25             ` Karthik Nayak
2026-06-24 20:19           ` Junio C Hamano
2026-06-26 14:39             ` Karthik Nayak
2026-06-19 14:56       ` [PATCH GSoC RFC v13 07/12] fetch-pack: move fetch initialization Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 08/12] serve: advertise object-info feature Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 09/12] transport: add client support for object-info Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 10/12] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-06-21  6:01         ` Chandra Pratap
2026-06-21 20:02           ` Junio C Hamano
2026-06-19 14:56       ` [PATCH GSoC RFC v13 11/12] cat-file: validate remote atoms with allow_list Pablo Sabater
2026-06-19 14:56       ` [PATCH GSoC RFC v13 12/12] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-06-21  6:19         ` Chandra Pratap
2026-06-21  6:27           ` Chandra Pratap
2026-06-21  5:25       ` [PATCH GSoC RFC v13 00/12] cat-file: add remote-object-info to batch-command Chandra Pratap
2026-06-25 12:13       ` [PATCH GSoC v14 00/13] " Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 02/13] git-compat-util: add strtoul_szt() with error handling Pablo Sabater
2026-06-25 21:09           ` Junio C Hamano
2026-06-26 12:00             ` Pablo Sabater
2026-06-26 16:43           ` Karthik Nayak
2026-06-25 12:13         ` [PATCH GSoC v14 03/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 04/13] t1006: split test utility functions into new "lib-cat-file.sh" Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 05/13] fetch-pack: prepare function to be moved Pablo Sabater
2026-06-26 12:14           ` Chandra Pratap
2026-06-26 16:54           ` Karthik Nayak
2026-06-27 21:06             ` Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 06/13] fetch-pack: move function to connect.c Pablo Sabater
2026-06-26 12:14           ` Chandra Pratap
2026-06-27 21:04             ` Pablo Sabater
2026-06-26 16:57           ` Karthik Nayak
2026-06-27 21:03             ` Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 07/13] connect: refactor packet writing Pablo Sabater
2026-06-26 17:03           ` Karthik Nayak
2026-06-27 20:58             ` Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 09/13] serve: advertise object-info feature Pablo Sabater
2026-06-26 22:23           ` Karthik Nayak
2026-06-27 17:52             ` Pablo Sabater
2026-06-28 22:55               ` Karthik Nayak
2026-06-25 12:13         ` [PATCH GSoC v14 10/13] transport: add client support for object-info Pablo Sabater
2026-06-27  0:22           ` Karthik Nayak
2026-06-27 19:44             ` Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 11/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-06-27 13:14           ` Karthik Nayak
2026-06-27 20:51             ` Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 12/13] cat-file: validate remote atoms with allow_list Pablo Sabater
2026-06-25 12:13         ` [PATCH GSoC v14 13/13] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-07-01 12:18         ` [PATCH GSoC v15 00/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 02/13] git-compat-util: add `strtoumax_szt()` with error handling Pablo Sabater
2026-07-01 17:30             ` Junio C Hamano
2026-07-07  8:50               ` Pablo Sabater
2026-07-07 18:09                 ` Junio C Hamano
2026-07-07 19:53                   ` Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 03/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 04/13] t1006: split test utility functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 05/13] fetch-pack: drop static `advertise_sid` variable Pablo Sabater
2026-07-01 18:19             ` Junio C Hamano
2026-07-01 12:18           ` [PATCH GSoC v15 06/13] fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 07/13] connect: make `write_fetch_command_and_capabilities()` more generic Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 09/13] serve: advertise object-info feature Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 10/13] transport: add client support for object-info Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 11/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 12/13] cat-file: validate remote atoms with an allow-list Pablo Sabater
2026-07-01 12:18           ` [PATCH GSoC v15 13/13] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-07-10 16:41           ` [PATCH GSoC v16 00/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 02/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 03/13] t1006: split test utility functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 04/13] fetch-pack: fix hash_algo variable type Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 05/13] fetch-pack: drop static advertise_sid variable Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 06/13] fetch-pack: move write_fetch_command_and_capabilities() to connect.c Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 07/13] connect: make write_fetch_command_and_capabilities() more generic Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 09/13] serve: advertise object-info feature Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 10/13] transport: add client support for object-info Pablo Sabater
2026-07-14 11:28               ` Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 11/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 12/13] cat-file: validate remote atoms with an allow-list Pablo Sabater
2026-07-10 16:41             ` [PATCH GSoC v16 13/13] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-07-12  5:26             ` [PATCH GSoC v16 00/13] cat-file: add remote-object-info to batch-command Chandra Pratap
2026-07-14 11:44             ` [PATCH GSoC v17 " Pablo Sabater
2026-07-14 11:44               ` [PATCH GSoC v17 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-14 11:44               ` [PATCH GSoC v17 02/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-14 11:44               ` [PATCH GSoC v17 03/13] t1006: split test utility functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 04/13] fetch-pack: fix hash_algo variable type Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 05/13] fetch-pack: drop static advertise_sid variable Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 06/13] fetch-pack: move write_fetch_command_and_capabilities() to connect.c Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 07/13] connect: make write_fetch_command_and_capabilities() more generic Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 09/13] serve: advertise object-info feature Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 10/13] transport: add client support for object-info Pablo Sabater
2026-07-14 17:58                 ` Junio C Hamano
2026-07-14 19:33                   ` Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 11/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 12/13] cat-file: validate remote atoms with an allow-list Pablo Sabater
2026-07-14 11:45               ` [PATCH GSoC v17 13/13] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-07-14 18:33               ` [PATCH GSoC v17 00/13] cat-file: add remote-object-info to batch-command Junio C Hamano
2026-07-14 22:50                 ` Pablo Sabater
2026-07-15  0:58                   ` Junio C Hamano
2026-07-15  8:48                     ` Pablo Sabater
2026-07-15 15:23                       ` Junio C Hamano
2026-07-15 15:36                         ` Pablo Sabater
2026-07-15  9:52               ` [PATCH GSoC v18 " Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 02/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 03/13] t1006: split test utility functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 04/13] fetch-pack: fix hash_algo variable type Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 05/13] fetch-pack: drop static advertise_sid variable Pablo Sabater
2026-07-15 21:48                   ` Karthik Nayak
2026-07-16 14:52                     ` Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 06/13] fetch-pack: move write_fetch_command_and_capabilities() to connect.c Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 07/13] connect: make write_fetch_command_and_capabilities() more generic Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 09/13] serve: advertise object-info feature Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 10/13] transport: add client support for object-info Pablo Sabater
2026-07-15 17:22                   ` Junio C Hamano
2026-07-15 18:08                     ` Pablo Sabater
2026-07-16 16:37                   ` Junio C Hamano
2026-07-15  9:52                 ` [PATCH GSoC v18 11/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-15 17:31                   ` Junio C Hamano
2026-07-15 18:06                     ` Pablo Sabater
2026-07-15 22:27                   ` Karthik Nayak
2026-07-15  9:52                 ` [PATCH GSoC v18 12/13] cat-file: validate remote atoms with an allow-list Pablo Sabater
2026-07-15  9:52                 ` [PATCH GSoC v18 13/13] cat-file: make remote-object-info allow-list dynamic Pablo Sabater
2026-07-15 17:56                   ` Junio C Hamano
2026-07-15 18:52                     ` Pablo Sabater
2026-07-15 20:32                       ` Junio C Hamano
2026-07-15 21:44                         ` Pablo Sabater
2026-07-16  1:30                           ` Junio C Hamano
2026-07-16  1:47                             ` Pablo Sabater
2026-07-15 22:35                 ` [PATCH GSoC v18 00/13] cat-file: add remote-object-info to batch-command Karthik Nayak
2026-07-17 15:05                 ` [PATCH GSoC v19 " Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 02/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 03/13] t1006: extract helper functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 04/13] fetch-pack: drop the static advertise_sid variable Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 05/13] fetch-pack: move write_fetch_command_and_capabilities() to connect.c Pablo Sabater
2026-07-18 18:34                     ` SZEDER Gábor
2026-07-18 19:00                       ` Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 06/13] connect: use unsigned int for hash_algo_by_name() calls Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 07/13] connect: make write_fetch_command_and_capabilities() more generic Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-17 15:05                   ` Pablo Sabater [this message]
2026-07-17 15:05                   ` [PATCH GSoC v19 10/13] serve: advertise object-info feature Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 11/13] transport: add client support for object-info Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 12/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-17 15:05                   ` [PATCH GSoC v19 13/13] cat-file: make remote-object-info allow-list adapt to the server Pablo Sabater
2026-07-18 21:49                   ` [PATCH GSoC v20 00/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 01/13] transport-helper: fix memory leak of helper on disconnect Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 02/13] cat-file: declare loop counter inside for() Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 03/13] t1006: extract helper functions into new 'lib-cat-file.sh' Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 04/13] fetch-pack: drop the static advertise_sid variable Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 05/13] fetch-pack: use unsigned int for hash_algo variable Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 06/13] fetch-pack: move write_fetch_command_and_capabilities() to connect.c Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 07/13] connect: make write_fetch_command_and_capabilities() more generic Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 08/13] fetch-pack: move fetch initialization Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 09/13] protocol-caps: check object existence regardless of the attributes requested Pablo Sabater
2026-07-18 21:49                     ` [PATCH GSoC v20 10/13] serve: advertise object-info feature Pablo Sabater
2026-07-18 21:50                     ` [PATCH GSoC v20 11/13] transport: add client support for object-info Pablo Sabater
2026-07-18 21:50                     ` [PATCH GSoC v20 12/13] cat-file: add remote-object-info to batch-command Pablo Sabater
2026-07-18 21:50                     ` [PATCH GSoC v20 13/13] cat-file: make remote-object-info allow-list adapt to the server Pablo Sabater

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=20260717-ps-eric-work-rebase-v19-9-d4faee35764b@gmail.com \
    --to=pabloosabaterr@gmail.com \
    --cc=chandrapratap3519@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=eric.peijian@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jltobler@gmail.com \
    --cc=karthik.188@gmail.com \
    --cc=peff@peff.net \
    --cc=toon@iotcl.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.