summary refs log tree commit diff
path: root/bundle.h
diff options
context:
space:
mode:
authorDerrick Stolee <derrickstolee@github.com>2022-03-09 16:01:39 +0000
committerJunio C Hamano <gitster@pobox.com>2022-03-09 10:25:27 -0800
commit105c6f14ad34b417c1e78bc9a8704dcda7b059f2 (patch)
tree2030b64814e8aab14dd6cd6787ad95f3e18a0294 /bundle.h
parent4f33a6345f2bd6e47253d1dbefd01874d895ab2e (diff)
bundle: parse filter capability
The v3 bundle format has capabilities, allowing newer versions of Git to
create bundles with newer features. Older versions that do not
understand these new capabilities will fail with a helpful warning.

Create a new capability allowing Git to understand that the contained
pack-file is filtered according to some object filter. Typically, this
filter will be "blob:none" for a blobless partial clone.

This change teaches Git to parse this capability, place its value in the
bundle header, and demonstrate this understanding by adding a message to
'git bundle verify'.

Since we will use gently_parse_list_objects_filter() outside of
list-objects-filter-options.c, make it an external method and move its
API documentation to before its declaration.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'bundle.h')
-rw-r--r--bundle.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/bundle.h b/bundle.h
index 06009fe6b1..7fef2108f4 100644
--- a/bundle.h
+++ b/bundle.h
@@ -4,12 +4,14 @@
 #include "strvec.h"
 #include "cache.h"
 #include "string-list.h"
+#include "list-objects-filter-options.h"
 
 struct bundle_header {
 	unsigned version;
 	struct string_list prerequisites;
 	struct string_list references;
 	const struct git_hash_algo *hash_algo;
+	struct list_objects_filter_options filter;
 };
 
 #define BUNDLE_HEADER_INIT \