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>

René Scharfe committed Sep 13, 2014 at 09:28 UTC 4489a480fdfe53e1ca78eabdab2dee00376814a3
1 file changed +6 -17
builtin/repack.c
+6 -17
@@ -378,6 +378,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
378 /* End of pack replacement. */
379
380 if (delete_redundant) {
381 + int opts = 0;
382 sort_string_list(&names);
383 for_each_string_list_item(item, &existing_packs) {
384 char *sha1;
@@ -388,25 +389,13 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
389 if (!string_list_has_string(&names, sha1))
390 remove_redundant_pack(packdir, item->string);
391 }
391 - argv_array_push(&cmd_args, "prune-packed");
392 - if (quiet)
393 - argv_array_push(&cmd_args, "--quiet");
394 -
395 - memset(&cmd, 0, sizeof(cmd));
396 - cmd.argv = cmd_args.argv;
397 - cmd.git_cmd = 1;
398 - run_command(&cmd);
399 - argv_array_clear(&cmd_args);
392 + if (!quiet && isatty(2))
393 + opts |= PRUNE_PACKED_VERBOSE;
394 + prune_packed_objects(opts);
395 }
396
402 - if (!no_update_server_info) {
403 - argv_array_push(&cmd_args, "update-server-info");
404 - memset(&cmd, 0, sizeof(cmd));
405 - cmd.argv = cmd_args.argv;
406 - cmd.git_cmd = 1;
407 - run_command(&cmd);
408 - argv_array_clear(&cmd_args);
409 - }
397 + if (!no_update_server_info)
398 + update_server_info(0);
399 remove_temporary_files();
400 string_list_clear(&names, 0);
401 string_list_clear(&rollback, 0);