summaryrefslogtreecommitdiff
path: root/http-fetch.c
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2021-02-22 19:20:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-22 20:07:40 (GMT)
commit726b25a91ba0e8f26f83c8d39ad16351b7bdb510 (patch)
treee7a717d55dae65d2fcc0f901f58a306bcd36a726 /http-fetch.c
parent66e871b6647ffea61a77a0f82c7ef3415f1ee79c (diff)
downloadgit-726b25a91ba0e8f26f83c8d39ad16351b7bdb510.zip
git-726b25a91ba0e8f26f83c8d39ad16351b7bdb510.tar.gz
git-726b25a91ba0e8f26f83c8d39ad16351b7bdb510.tar.bz2
http: allow custom index-pack args
Currently, when fetching, packfiles referenced by URIs are run through index-pack without any arguments other than --stdin and --keep, no matter what arguments are used for the packfile that is inline in the fetch response. As a preparation for ensuring that all packs (whether inline or not) use the same index-pack arguments, teach the http subsystem to allow custom index-pack arguments. http-fetch has been updated to use the new API. For now, it passes --keep alone instead of --keep with a process ID, but this is only temporary because http-fetch itself will be taught to accept index-pack parameters (instead of using a hardcoded constant) in a subsequent commit. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-fetch.c')
-rw-r--r--http-fetch.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/http-fetch.c b/http-fetch.c
index c4ccc5f..2d1d9d0 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -43,6 +43,9 @@ static int fetch_using_walker(const char *raw_url, int get_verbosely,
return rc;
}
+static const char *index_pack_args[] =
+ {"index-pack", "--stdin", "--keep", NULL};
+
static void fetch_single_packfile(struct object_id *packfile_hash,
const char *url) {
struct http_pack_request *preq;
@@ -55,7 +58,8 @@ static void fetch_single_packfile(struct object_id *packfile_hash,
if (preq == NULL)
die("couldn't create http pack request");
preq->slot->results = &results;
- preq->generate_keep = 1;
+ preq->index_pack_args = index_pack_args;
+ preq->preserve_index_pack_stdout = 1;
if (start_active_slot(preq->slot)) {
run_active_slot(preq->slot);