summaryrefslogtreecommitdiff
path: root/list-objects-filter-options.c
diff options
context:
space:
mode:
authorDerrick Stolee <derrickstolee@github.com>2022-03-09 16:01:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2022-03-09 18:25:27 (GMT)
commit105c6f14ad34b417c1e78bc9a8704dcda7b059f2 (patch)
tree2030b64814e8aab14dd6cd6787ad95f3e18a0294 /list-objects-filter-options.c
parent4f33a6345f2bd6e47253d1dbefd01874d895ab2e (diff)
downloadgit-105c6f14ad34b417c1e78bc9a8704dcda7b059f2.zip
git-105c6f14ad34b417c1e78bc9a8704dcda7b059f2.tar.gz
git-105c6f14ad34b417c1e78bc9a8704dcda7b059f2.tar.bz2
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 'list-objects-filter-options.c')
-rw-r--r--list-objects-filter-options.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c
index 449d53a..f02d8df 100644
--- a/list-objects-filter-options.c
+++ b/list-objects-filter-options.c
@@ -40,22 +40,7 @@ const char *list_object_filter_config_name(enum list_objects_filter_choice c)
BUG("list_object_filter_config_name: invalid argument '%d'", c);
}
-/*
- * Parse value of the argument to the "filter" keyword.
- * On the command line this looks like:
- * --filter=<arg>
- * and in the pack protocol as:
- * "filter" SP <arg>
- *
- * The filter keyword will be used by many commands.
- * See Documentation/rev-list-options.txt for allowed values for <arg>.
- *
- * Capture the given arg as the "filter_spec". This can be forwarded to
- * subordinate commands when necessary (although it's better to pass it through
- * expand_list_objects_filter_spec() first). We also "intern" the arg for the
- * convenience of the current command.
- */
-static int gently_parse_list_objects_filter(
+int gently_parse_list_objects_filter(
struct list_objects_filter_options *filter_options,
const char *arg,
struct strbuf *errbuf)