]> git.ipfire.org Git - thirdparty/git.git/blobdiff - http.h
The sixth batch
[thirdparty/git.git] / http.h
diff --git a/http.h b/http.h
index faf8cbb0d10e44e036542a15aa6684a5eb7416cc..5de792ef3fe1dd8597c9b890a120eeacd2eb4994 100644 (file)
--- a/http.h
+++ b/http.h
@@ -216,18 +216,36 @@ int http_get_info_packs(const char *base_url,
 
 struct http_pack_request {
        char *url;
-       struct packed_git *target;
-       struct packed_git **lst;
+
+       /*
+        * If this is true, finish_http_pack_request() will pass "--keep" to
+        * index-pack, resulting in the creation of a keep file, and will not
+        * suppress its stdout (that is, the "keep\t<hash>\n" line will be
+        * printed to stdout).
+        */
+       unsigned generate_keep : 1;
+
        FILE *packfile;
        struct strbuf tmpfile;
        struct active_request_slot *slot;
 };
 
 struct http_pack_request *new_http_pack_request(
-       struct packed_git *target, const char *base_url);
+       const unsigned char *packed_git_hash, const char *base_url);
+struct http_pack_request *new_direct_http_pack_request(
+       const unsigned char *packed_git_hash, char *url);
 int finish_http_pack_request(struct http_pack_request *preq);
 void release_http_pack_request(struct http_pack_request *preq);
 
+/*
+ * Remove p from the given list, and invoke install_packed_git() on it.
+ *
+ * This is a convenience function for users that have obtained a list of packs
+ * from http_get_info_packs() and have chosen a specific pack to fetch.
+ */
+void http_install_packfile(struct packed_git *p,
+                          struct packed_git **list_to_remove_from);
+
 /* Helpers for fetching object */
 struct http_object_request {
        char *url;