Skip to content

Commit 1bc100d

Browse files
repo: reduce repetition in structure keyvalue output
Refactor structure_keyvalue_print() to use small helpers for single-key and per-object-type metrics. This makes the output section easier to review and reduces copy/paste risk while keeping output keys unchanged. Signed-off-by: Eslam reda ragheb <eslam.reda.div@gmail.com>
1 parent f17c0f0 commit 1bc100d

1 file changed

Lines changed: 76 additions & 80 deletions

File tree

builtin/repo.c

Lines changed: 76 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,27 @@ static void stats_table_clear(struct stats_table *table)
821821
string_list_clear(&table->rows, 1);
822822
}
823823

824+
static void print_keyvalue_size(const char *key, size_t value,
825+
char key_delim, char value_delim)
826+
{
827+
printf("%s%c%" PRIuMAX "%c", key, key_delim, (uintmax_t)value,
828+
value_delim);
829+
}
830+
831+
static void print_object_values(const struct object_values *values,
832+
const char *metric,
833+
char key_delim, char value_delim)
834+
{
835+
printf("objects.commits.%s%c%" PRIuMAX "%c", metric, key_delim,
836+
(uintmax_t)values->commits, value_delim);
837+
printf("objects.trees.%s%c%" PRIuMAX "%c", metric, key_delim,
838+
(uintmax_t)values->trees, value_delim);
839+
printf("objects.blobs.%s%c%" PRIuMAX "%c", metric, key_delim,
840+
(uintmax_t)values->blobs, value_delim);
841+
printf("objects.tags.%s%c%" PRIuMAX "%c", metric, key_delim,
842+
(uintmax_t)values->tags, value_delim);
843+
}
844+
824845
static void structure_keyvalue_print(struct repo_structure *stats,
825846
char key_delim, char value_delim)
826847
{
@@ -831,86 +852,61 @@ static void structure_keyvalue_print(struct repo_structure *stats,
831852
size_t max_inflated_size = get_max_object_value(&stats->objects.max_inflated_sizes);
832853
size_t max_disk_size = get_max_object_value(&stats->objects.max_disk_sizes);
833854

834-
printf("references.count%c%" PRIuMAX "%c", key_delim,
835-
(uintmax_t)references_count_total, value_delim);
836-
837-
printf("references.branches.count%c%" PRIuMAX "%c", key_delim,
838-
(uintmax_t)stats->refs.branches, value_delim);
839-
printf("references.tags.count%c%" PRIuMAX "%c", key_delim,
840-
(uintmax_t)stats->refs.tags, value_delim);
841-
printf("references.remotes.count%c%" PRIuMAX "%c", key_delim,
842-
(uintmax_t)stats->refs.remotes, value_delim);
843-
printf("references.others.count%c%" PRIuMAX "%c", key_delim,
844-
(uintmax_t)stats->refs.others, value_delim);
845-
846-
printf("objects.count%c%" PRIuMAX "%c", key_delim,
847-
(uintmax_t)object_count_total, value_delim);
848-
849-
printf("objects.commits.count%c%" PRIuMAX "%c", key_delim,
850-
(uintmax_t)stats->objects.type_counts.commits, value_delim);
851-
printf("objects.trees.count%c%" PRIuMAX "%c", key_delim,
852-
(uintmax_t)stats->objects.type_counts.trees, value_delim);
853-
printf("objects.blobs.count%c%" PRIuMAX "%c", key_delim,
854-
(uintmax_t)stats->objects.type_counts.blobs, value_delim);
855-
printf("objects.tags.count%c%" PRIuMAX "%c", key_delim,
856-
(uintmax_t)stats->objects.type_counts.tags, value_delim);
857-
858-
printf("objects.inflated_size%c%" PRIuMAX "%c", key_delim,
859-
(uintmax_t)inflated_size_total, value_delim);
860-
861-
printf("objects.commits.inflated_size%c%" PRIuMAX "%c", key_delim,
862-
(uintmax_t)stats->objects.inflated_sizes.commits, value_delim);
863-
printf("objects.trees.inflated_size%c%" PRIuMAX "%c", key_delim,
864-
(uintmax_t)stats->objects.inflated_sizes.trees, value_delim);
865-
printf("objects.blobs.inflated_size%c%" PRIuMAX "%c", key_delim,
866-
(uintmax_t)stats->objects.inflated_sizes.blobs, value_delim);
867-
printf("objects.tags.inflated_size%c%" PRIuMAX "%c", key_delim,
868-
(uintmax_t)stats->objects.inflated_sizes.tags, value_delim);
869-
870-
printf("objects.max_inflated_size%c%" PRIuMAX "%c", key_delim,
871-
(uintmax_t)max_inflated_size, value_delim);
872-
printf("objects.commits.max_inflated_size%c%" PRIuMAX "%c", key_delim,
873-
(uintmax_t)stats->objects.max_inflated_sizes.commits, value_delim);
874-
printf("objects.trees.max_inflated_size%c%" PRIuMAX "%c", key_delim,
875-
(uintmax_t)stats->objects.max_inflated_sizes.trees, value_delim);
876-
printf("objects.blobs.max_inflated_size%c%" PRIuMAX "%c", key_delim,
877-
(uintmax_t)stats->objects.max_inflated_sizes.blobs, value_delim);
878-
printf("objects.tags.max_inflated_size%c%" PRIuMAX "%c", key_delim,
879-
(uintmax_t)stats->objects.max_inflated_sizes.tags, value_delim);
880-
881-
printf("objects.disk_size%c%" PRIuMAX "%c", key_delim,
882-
(uintmax_t)disk_size_total, value_delim);
883-
884-
printf("objects.max_disk_size%c%" PRIuMAX "%c", key_delim,
885-
(uintmax_t)max_disk_size, value_delim);
886-
printf("objects.commits.max_disk_size%c%" PRIuMAX "%c", key_delim,
887-
(uintmax_t)stats->objects.max_disk_sizes.commits, value_delim);
888-
printf("objects.trees.max_disk_size%c%" PRIuMAX "%c", key_delim,
889-
(uintmax_t)stats->objects.max_disk_sizes.trees, value_delim);
890-
printf("objects.blobs.max_disk_size%c%" PRIuMAX "%c", key_delim,
891-
(uintmax_t)stats->objects.max_disk_sizes.blobs, value_delim);
892-
printf("objects.tags.max_disk_size%c%" PRIuMAX "%c", key_delim,
893-
(uintmax_t)stats->objects.max_disk_sizes.tags, value_delim);
894-
895-
printf("objects.commits.max_parent_count%c%" PRIuMAX "%c", key_delim,
896-
(uintmax_t)stats->objects.max_commit_parent_count, value_delim);
897-
printf("objects.trees.max_entry_count%c%" PRIuMAX "%c", key_delim,
898-
(uintmax_t)stats->objects.max_tree_entry_count, value_delim);
899-
printf("objects.blobs.max_path_length%c%" PRIuMAX "%c", key_delim,
900-
(uintmax_t)stats->objects.max_blob_path_length, value_delim);
901-
printf("objects.blobs.max_path_depth%c%" PRIuMAX "%c", key_delim,
902-
(uintmax_t)stats->objects.max_blob_path_depth, value_delim);
903-
printf("objects.tags.max_chain_depth%c%" PRIuMAX "%c", key_delim,
904-
(uintmax_t)stats->objects.max_tag_chain_depth, value_delim);
905-
906-
printf("objects.commits.disk_size%c%" PRIuMAX "%c", key_delim,
907-
(uintmax_t)stats->objects.disk_sizes.commits, value_delim);
908-
printf("objects.trees.disk_size%c%" PRIuMAX "%c", key_delim,
909-
(uintmax_t)stats->objects.disk_sizes.trees, value_delim);
910-
printf("objects.blobs.disk_size%c%" PRIuMAX "%c", key_delim,
911-
(uintmax_t)stats->objects.disk_sizes.blobs, value_delim);
912-
printf("objects.tags.disk_size%c%" PRIuMAX "%c", key_delim,
913-
(uintmax_t)stats->objects.disk_sizes.tags, value_delim);
855+
print_keyvalue_size("references.count", references_count_total,
856+
key_delim, value_delim);
857+
858+
print_keyvalue_size("references.branches.count", stats->refs.branches,
859+
key_delim, value_delim);
860+
print_keyvalue_size("references.tags.count", stats->refs.tags,
861+
key_delim, value_delim);
862+
print_keyvalue_size("references.remotes.count", stats->refs.remotes,
863+
key_delim, value_delim);
864+
print_keyvalue_size("references.others.count", stats->refs.others,
865+
key_delim, value_delim);
866+
867+
print_keyvalue_size("objects.count", object_count_total,
868+
key_delim, value_delim);
869+
870+
print_object_values(&stats->objects.type_counts, "count",
871+
key_delim, value_delim);
872+
873+
print_keyvalue_size("objects.inflated_size", inflated_size_total,
874+
key_delim, value_delim);
875+
876+
print_object_values(&stats->objects.inflated_sizes, "inflated_size",
877+
key_delim, value_delim);
878+
879+
print_keyvalue_size("objects.max_inflated_size", max_inflated_size,
880+
key_delim, value_delim);
881+
print_object_values(&stats->objects.max_inflated_sizes,
882+
"max_inflated_size", key_delim, value_delim);
883+
884+
print_keyvalue_size("objects.disk_size", disk_size_total,
885+
key_delim, value_delim);
886+
887+
print_keyvalue_size("objects.max_disk_size", max_disk_size,
888+
key_delim, value_delim);
889+
print_object_values(&stats->objects.max_disk_sizes, "max_disk_size",
890+
key_delim, value_delim);
891+
892+
print_keyvalue_size("objects.commits.max_parent_count",
893+
stats->objects.max_commit_parent_count,
894+
key_delim, value_delim);
895+
print_keyvalue_size("objects.trees.max_entry_count",
896+
stats->objects.max_tree_entry_count,
897+
key_delim, value_delim);
898+
print_keyvalue_size("objects.blobs.max_path_length",
899+
stats->objects.max_blob_path_length,
900+
key_delim, value_delim);
901+
print_keyvalue_size("objects.blobs.max_path_depth",
902+
stats->objects.max_blob_path_depth,
903+
key_delim, value_delim);
904+
print_keyvalue_size("objects.tags.max_chain_depth",
905+
stats->objects.max_tag_chain_depth,
906+
key_delim, value_delim);
907+
908+
print_object_values(&stats->objects.disk_sizes, "disk_size",
909+
key_delim, value_delim);
914910

915911
fflush(stdout);
916912
}

0 commit comments

Comments
 (0)