diff options
author | Jeff King <peff@peff.net> | 2021-10-05 16:36:17 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-10-08 15:45:14 -0700 |
commit | 818e393084351324501b90142f7e8f95997db62b (patch) | |
tree | bfd1e85da43a20cc5fca9c6082026c6ed74ccc67 /builtin | |
parent | cat-file: disable refs/replace with --batch-all-objects (diff) | |
download | tgif-818e393084351324501b90142f7e8f95997db62b.tar.xz |
cat-file: split ordered/unordered batch-all-objects callbacks
When we originally added --batch-all-objects, it stuffed everything into
an oid_array(), and then iterated over that array with a callback to
write the actual output.
When we later added --unordered, that code path writes immediately as we
discover each object, but just calls the same batch_object_cb() as our
entry point to the writing code. That callback has a narrow interface;
it only receives the oid, but we know much more about each object in the
unordered write (which we'll make use of in the next patch). So let's
just call batch_object_write() directly. The callback wasn't saving us
much effort.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/cat-file.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin/cat-file.c b/builtin/cat-file.c index b713be545e..b533935d5c 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -470,7 +470,9 @@ static int batch_unordered_object(const struct object_id *oid, void *vdata) if (oidset_insert(data->seen, oid)) return 0; - return batch_object_cb(oid, data); + oidcpy(&data->expand->oid, oid); + batch_object_write(NULL, data->scratch, data->opt, data->expand); + return 0; } static int batch_unordered_loose(const struct object_id *oid, |