diff options
| author | Justin Tobler <jltobler@gmail.com> | 2026-03-02 15:45:21 -0600 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-03-02 13:54:51 -0800 |
| commit | 31c771ab443352741ecc3710d54a91890a68ee79 (patch) | |
| tree | 1006b3d0ac0088218113dc06cd47a5ef116839ed | |
| parent | 7c02d39fc2ed2702223c7674f73150d9a7e61ba4 (diff) | |
| download | git-31c771ab443352741ecc3710d54a91890a68ee79.tar.xz | |
builtin/repo: update stats for each object
When walking reachable objects in the repository, `count_objects()`
processes a set of objects and updates the `struct object_stats`. In
preparation for more granular statistics being collected, update the
`struct object_stats` for each individual object instead.
Signed-off-by: Justin Tobler <jltobler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/repo.c | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/builtin/repo.c b/builtin/repo.c index 0ea045abc1..c7c9f0f497 100644 --- a/builtin/repo.c +++ b/builtin/repo.c @@ -558,8 +558,6 @@ static int count_objects(const char *path UNUSED, struct oid_array *oids, { struct count_objects_data *data = cb_data; struct object_stats *stats = data->stats; - size_t inflated_total = 0; - size_t disk_total = 0; size_t object_count; for (size_t i = 0; i < oids->nr; i++) { @@ -575,33 +573,30 @@ static int count_objects(const char *path UNUSED, struct oid_array *oids, OBJECT_INFO_QUICK) < 0) continue; - inflated_total += inflated; - disk_total += disk; - } - - switch (type) { - case OBJ_TAG: - stats->type_counts.tags += oids->nr; - stats->inflated_sizes.tags += inflated_total; - stats->disk_sizes.tags += disk_total; - break; - case OBJ_COMMIT: - stats->type_counts.commits += oids->nr; - stats->inflated_sizes.commits += inflated_total; - stats->disk_sizes.commits += disk_total; - break; - case OBJ_TREE: - stats->type_counts.trees += oids->nr; - stats->inflated_sizes.trees += inflated_total; - stats->disk_sizes.trees += disk_total; - break; - case OBJ_BLOB: - stats->type_counts.blobs += oids->nr; - stats->inflated_sizes.blobs += inflated_total; - stats->disk_sizes.blobs += disk_total; - break; - default: - BUG("invalid object type"); + switch (type) { + case OBJ_TAG: + stats->type_counts.tags++; + stats->inflated_sizes.tags += inflated; + stats->disk_sizes.tags += disk; + break; + case OBJ_COMMIT: + stats->type_counts.commits++; + stats->inflated_sizes.commits += inflated; + stats->disk_sizes.commits += disk; + break; + case OBJ_TREE: + stats->type_counts.trees++; + stats->inflated_sizes.trees += inflated; + stats->disk_sizes.trees += disk; + break; + case OBJ_BLOB: + stats->type_counts.blobs++; + stats->inflated_sizes.blobs += inflated; + stats->disk_sizes.blobs += disk; + break; + default: + BUG("invalid object type"); + } } object_count = get_total_object_values(&stats->type_counts); |
