diff options
author | René Scharfe <l.s.r@web.de> | 2014-09-13 09:28:01 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-09-15 11:39:58 -0700 |
commit | 4489a480fdfe53e1ca78eabdab2dee00376814a3 (patch) | |
tree | 73cae0b615a98b171c5c993d1dcd167aa920c6b8 /builtin | |
parent | 3907a4078a89cffde2e2e0e61a3bd41efba96c49 (diff) | |
download | git-4489a480fdfe53e1ca78eabdab2dee00376814a3.tar.gz git-4489a480fdfe53e1ca78eabdab2dee00376814a3.tar.xz |
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 <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/repack.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/builtin/repack.c b/builtin/repack.c index a77e743b9..691283127 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); |