[PATCH 12/25] bundle: make it easy to call 'git bundle fetch'
From: Derrick Stolee via GitGitGadget <hidden>
Date: 2022-02-23 18:31:47
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Derrick Stolee <redacted> Future changes will integrate 'git bundle fetch' into the 'git clone' and 'git fetch' operations. Make it easy to fetch bundles via a helper method. Signed-off-by: Derrick Stolee <redacted> --- bundle.c | 21 +++++++++++++++++++++ bundle.h | 9 +++++++++ 2 files changed, 30 insertions(+)
diff --git a/bundle.c b/bundle.c
index 3d97de40ef0..9e1b5300366 100644
--- a/bundle.c
+++ b/bundle.c@@ -649,3 +649,24 @@ int unbundle(struct repository *r, struct bundle_header *header, return error(_("index-pack died")); return 0; } + +int fetch_bundle_uri(const char *bundle_uri, + const char *filter) +{ + int res = 0; + struct strvec args = STRVEC_INIT; + + strvec_pushl(&args, "bundle", "fetch", NULL); + + if (filter) + strvec_pushf(&args, "--filter=%s", filter); + strvec_push(&args, bundle_uri); + + if (run_command_v_opt(args.v, RUN_GIT_CMD)) { + warning(_("failed to download bundle from uri '%s'"), bundle_uri); + res = 1; + } + + strvec_clear(&args); + return res; +}
diff --git a/bundle.h b/bundle.h
index eb026153d56..bf865b19687 100644
--- a/bundle.h
+++ b/bundle.h@@ -45,4 +45,13 @@ int unbundle(struct repository *r, struct bundle_header *header, int list_bundle_refs(struct bundle_header *header, int argc, const char **argv); +struct list_objects_filter_options; +/** + * Fetch bundles from the given URI with the given filter. + * + * Uses 'git bundle fetch' as a subprocess. + */ +int fetch_bundle_uri(const char *bundle_uri, + const char *filter); + #endif
--
gitgitgadget