{"thread":{"id":"14135","subject":"[PATCH 2/4] move show_pack_info() were it belongs","startedAt":"2008-06-25T03:18:17Z","lastAt":"2008-06-25T03:18:17Z","messageCount":1,"participants":["Nicolas Pitre"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"81041","messageId":"alpine.LFD.1.10.0806242317150.2979@xanadu.home","threadId":"14135","inReplyTo":null,"subject":"[PATCH 2/4] move show_pack_info() were it belongs","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2008-06-25T03:18:17Z","receivedAt":"2008-06-25T03:18:17Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"\nThis is called when verify_pack() has its verbose argument set, and\nverbose in this context makes sense only for the actual 'git verify-pack'\ncommand.  Therefore let's move show_pack_info() to builtin-verify-pack.c\ninstead and remove useless verbose argument from verify_pack().\n\nSigned-off-by: Nicolas Pitre <nico@cam.org>\n---\n builtin-fsck.c        |    2 +-\n builtin-verify-pack.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++-\n http-push.c           |    2 +-\n http-walker.c         |    2 +-\n pack-check.c          |   66 +------------------------------------------------\n pack.h                |    2 +-\n 6 files changed, 67 insertions(+), 70 deletions(-)\n\ndiff --git a/builtin-fsck.c b/builtin-fsck.c\nindex 78a6e1f..b0f9648 100644\n--- a/builtin-fsck.c\n+++ b/builtin-fsck.c\n@@ -585,7 +585,7 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)\n \t\tprepare_packed_git();\n \t\tfor (p = packed_git; p; p = p->next)\n \t\t\t/* verify gives error messages itself */\n-\t\t\tverify_pack(p, 0);\n+\t\t\tverify_pack(p);\n \n \t\tfor (p = packed_git; p; p = p->next) {\n \t\t\tuint32_t j, num;\ndiff --git a/builtin-verify-pack.c b/builtin-verify-pack.c\nindex 4c515a0..222c39e 100644\n--- a/builtin-verify-pack.c\n+++ b/builtin-verify-pack.c\n@@ -2,6 +2,58 @@\n #include \"cache.h\"\n #include \"pack.h\"\n \n+\n+#define MAX_CHAIN 50\n+\n+static void show_pack_info(struct packed_git *p)\n+{\n+\tuint32_t nr_objects, i, chain_histogram[MAX_CHAIN+1];\n+\n+\tnr_objects = p->num_objects;\n+\tmemset(chain_histogram, 0, sizeof(chain_histogram));\n+\n+\tfor (i = 0; i < nr_objects; i++) {\n+\t\tconst unsigned char *sha1;\n+\t\tunsigned char base_sha1[20];\n+\t\tconst char *type;\n+\t\tunsigned long size;\n+\t\tunsigned long store_size;\n+\t\toff_t offset;\n+\t\tunsigned int delta_chain_length;\n+\n+\t\tsha1 = nth_packed_object_sha1(p, i);\n+\t\tif (!sha1)\n+\t\t\tdie(\"internal error pack-check nth-packed-object\");\n+\t\toffset = nth_packed_object_offset(p, i);\n+\t\ttype = packed_object_info_detail(p, offset, &size, &store_size,\n+\t\t\t\t\t\t &delta_chain_length,\n+\t\t\t\t\t\t base_sha1);\n+\t\tprintf(\"%s \", sha1_to_hex(sha1));\n+\t\tif (!delta_chain_length)\n+\t\t\tprintf(\"%-6s %lu %lu %\"PRIuMAX\"\\n\",\n+\t\t\t       type, size, store_size, (uintmax_t)offset);\n+\t\telse {\n+\t\t\tprintf(\"%-6s %lu %lu %\"PRIuMAX\" %u %s\\n\",\n+\t\t\t       type, size, store_size, (uintmax_t)offset,\n+\t\t\t       delta_chain_length, sha1_to_hex(base_sha1));\n+\t\t\tif (delta_chain_length <= MAX_CHAIN)\n+\t\t\t\tchain_histogram[delta_chain_length]++;\n+\t\t\telse\n+\t\t\t\tchain_histogram[0]++;\n+\t\t}\n+\t}\n+\n+\tfor (i = 0; i <= MAX_CHAIN; i++) {\n+\t\tif (!chain_histogram[i])\n+\t\t\tcontinue;\n+\t\tprintf(\"chain length = %d: %d object%s\\n\", i,\n+\t\t       chain_histogram[i], chain_histogram[i] > 1 ? \"s\" : \"\");\n+\t}\n+\tif (chain_histogram[0])\n+\t\tprintf(\"chain length > %d: %d object%s\\n\", MAX_CHAIN,\n+\t\t       chain_histogram[0], chain_histogram[0] > 1 ? \"s\" : \"\");\n+}\n+\n static int verify_one_pack(const char *path, int verbose)\n {\n \tchar arg[PATH_MAX];\n@@ -41,7 +93,16 @@ static int verify_one_pack(const char *path, int verbose)\n \t\treturn error(\"packfile %s not found.\", arg);\n \n \tinstall_packed_git(pack);\n-\terr = verify_pack(pack, verbose);\n+\terr = verify_pack(pack);\n+\n+\tif (verbose) {\n+\t\tif (err)\n+\t\t\tprintf(\"%s: bad\\n\", pack->pack_name);\n+\t\telse {\n+\t\t\tshow_pack_info(pack);\n+\t\t\tprintf(\"%s: ok\\n\", pack->pack_name);\n+\t\t}\n+\t}\n \n \treturn err;\n }\ndiff --git a/http-push.c b/http-push.c\nindex 665712a..2cd068a 100644\n--- a/http-push.c\n+++ b/http-push.c\n@@ -783,7 +783,7 @@ static void finish_request(struct transfer_request *request)\n \t\t\t\t\tlst = &((*lst)->next);\n \t\t\t\t*lst = (*lst)->next;\n \n-\t\t\t\tif (!verify_pack(target, 0))\n+\t\t\t\tif (!verify_pack(target))\n \t\t\t\t\tinstall_packed_git(target);\n \t\t\t\telse\n \t\t\t\t\tremote->can_update_info_refs = 0;\ndiff --git a/http-walker.c b/http-walker.c\nindex 99f397e..51c18f2 100644\n--- a/http-walker.c\n+++ b/http-walker.c\n@@ -795,7 +795,7 @@ static int fetch_pack(struct walker *walker, struct alt_base *repo, unsigned cha\n \t\tlst = &((*lst)->next);\n \t*lst = (*lst)->next;\n \n-\tif (verify_pack(target, 0))\n+\tif (verify_pack(target))\n \t\treturn -1;\n \tinstall_packed_git(target);\n \ndiff --git a/pack-check.c b/pack-check.c\nindex d6dbd4b..5f02a65 100644\n--- a/pack-check.c\n+++ b/pack-check.c\n@@ -96,62 +96,7 @@ static int verify_packfile(struct packed_git *p,\n \treturn err;\n }\n \n-\n-#define MAX_CHAIN 50\n-\n-static void show_pack_info(struct packed_git *p)\n-{\n-\tuint32_t nr_objects, i, chain_histogram[MAX_CHAIN+1];\n-\n-\tnr_objects = p->num_objects;\n-\tmemset(chain_histogram, 0, sizeof(chain_histogram));\n-\n-\tfor (i = 0; i < nr_objects; i++) {\n-\t\tconst unsigned char *sha1;\n-\t\tunsigned char base_sha1[20];\n-\t\tconst char *type;\n-\t\tunsigned long size;\n-\t\tunsigned long store_size;\n-\t\toff_t offset;\n-\t\tunsigned int delta_chain_length;\n-\n-\t\tsha1 = nth_packed_object_sha1(p, i);\n-\t\tif (!sha1)\n-\t\t\tdie(\"internal error pack-check nth-packed-object\");\n-\t\toffset = find_pack_entry_one(sha1, p);\n-\t\tif (!offset)\n-\t\t\tdie(\"internal error pack-check find-pack-entry-one\");\n-\n-\t\ttype = packed_object_info_detail(p, offset, &size, &store_size,\n-\t\t\t\t\t\t &delta_chain_length,\n-\t\t\t\t\t\t base_sha1);\n-\t\tprintf(\"%s \", sha1_to_hex(sha1));\n-\t\tif (!delta_chain_length)\n-\t\t\tprintf(\"%-6s %lu %lu %\"PRIuMAX\"\\n\",\n-\t\t\t       type, size, store_size, (uintmax_t)offset);\n-\t\telse {\n-\t\t\tprintf(\"%-6s %lu %lu %\"PRIuMAX\" %u %s\\n\",\n-\t\t\t       type, size, store_size, (uintmax_t)offset,\n-\t\t\t       delta_chain_length, sha1_to_hex(base_sha1));\n-\t\t\tif (delta_chain_length <= MAX_CHAIN)\n-\t\t\t\tchain_histogram[delta_chain_length]++;\n-\t\t\telse\n-\t\t\t\tchain_histogram[0]++;\n-\t\t}\n-\t}\n-\n-\tfor (i = 0; i <= MAX_CHAIN; i++) {\n-\t\tif (!chain_histogram[i])\n-\t\t\tcontinue;\n-\t\tprintf(\"chain length = %d: %d object%s\\n\", i,\n-\t\t       chain_histogram[i], chain_histogram[i] > 1 ? \"s\" : \"\");\n-\t}\n-\tif (chain_histogram[0])\n-\t\tprintf(\"chain length > %d: %d object%s\\n\", MAX_CHAIN,\n-\t\t       chain_histogram[0], chain_histogram[0] > 1 ? \"s\" : \"\");\n-}\n-\n-int verify_pack(struct packed_git *p, int verbose)\n+int verify_pack(struct packed_git *p)\n {\n \toff_t index_size;\n \tconst unsigned char *index_base;\n@@ -177,14 +122,5 @@ int verify_pack(struct packed_git *p, int verbose)\n \terr |= verify_packfile(p, &w_curs);\n \tunuse_pack(&w_curs);\n \n-\tif (verbose) {\n-\t\tif (err)\n-\t\t\tprintf(\"%s: bad\\n\", p->pack_name);\n-\t\telse {\n-\t\t\tshow_pack_info(p);\n-\t\t\tprintf(\"%s: ok\\n\", p->pack_name);\n-\t\t}\n-\t}\n-\n \treturn err;\n }\ndiff --git a/pack.h b/pack.h\nindex b31b376..465071c 100644\n--- a/pack.h\n+++ b/pack.h\n@@ -57,7 +57,7 @@ struct pack_idx_entry {\n \n extern char *write_idx_file(char *index_name, struct pack_idx_entry **objects, int nr_objects, unsigned char *sha1);\n \n-extern int verify_pack(struct packed_git *, int);\n+extern int verify_pack(struct packed_git *);\n extern void fixup_pack_header_footer(int, unsigned char *, const char *, uint32_t);\n extern char *index_pack_lockfile(int fd);\n \n-- \n1.5.6.56.g29b0d\n"}]}