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);