From: René Scharfe Date: Sat, 13 Sep 2014 07:28:01 +0000 (+0200) Subject: repack: call prune_packed_objects() and update_server_info() directly X-Git-Tag: v2.2.0-rc0~86^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4489a480fdfe53e1ca78eabdab2dee00376814a3;p=thirdparty%2Fgit.git repack: call prune_packed_objects() and update_server_info() directly Call the functions behind git prune-packed and git update-server-info directly instead of using run_command(). This is shorter, easier and quicker. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- diff --git a/builtin/repack.c b/builtin/repack.c index a77e743b94..6912831273 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -378,6 +378,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix) /* End of pack replacement. */ if (delete_redundant) { + int opts = 0; sort_string_list(&names); for_each_string_list_item(item, &existing_packs) { char *sha1; @@ -388,25 +389,13 @@ int cmd_repack(int argc, const char **argv, const char *prefix) if (!string_list_has_string(&names, sha1)) remove_redundant_pack(packdir, item->string); } - argv_array_push(&cmd_args, "prune-packed"); - if (quiet) - argv_array_push(&cmd_args, "--quiet"); - - memset(&cmd, 0, sizeof(cmd)); - cmd.argv = cmd_args.argv; - cmd.git_cmd = 1; - run_command(&cmd); - argv_array_clear(&cmd_args); + if (!quiet && isatty(2)) + opts |= PRUNE_PACKED_VERBOSE; + prune_packed_objects(opts); } - if (!no_update_server_info) { - argv_array_push(&cmd_args, "update-server-info"); - memset(&cmd, 0, sizeof(cmd)); - cmd.argv = cmd_args.argv; - cmd.git_cmd = 1; - run_command(&cmd); - argv_array_clear(&cmd_args); - } + if (!no_update_server_info) + update_server_info(0); remove_temporary_files(); string_list_clear(&names, 0); string_list_clear(&rollback, 0);