Merge branch 'jt/cdn-offload'
The "fetch/clone" protocol has been updated to allow the server to instruct the clients to grab pre-packaged packfile(s) in addition to the packed object data coming over the wire. * jt/cdn-offload: upload-pack: fix a sparse '0 as NULL pointer' warning upload-pack: send part of packfile response as uri fetch-pack: support more than one pack lockfile upload-pack: refactor reading of pack-objects out Documentation: add Packfile URIs design doc Documentation: order protocol v2 sections http-fetch: support fetching packfiles by URL http-fetch: refactor into function http: refactor finish_http_pack_request() http: use --stdin when indexing dumb HTTP pack
This commit is contained in:
24
http.h
24
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;
|
||||
|
||||
Reference in New Issue
Block a user