|
22 | 22 | #include "pack-bitmap.h" |
23 | 23 | #include "reachable.h" |
24 | 24 | #include "sha1-array.h" |
| 25 | +#include "argv-array.h" |
25 | 26 |
|
26 | 27 | static const char *pack_usage[] = { |
27 | 28 | N_("git pack-objects --stdout [options...] [< ref-list | < object-list]"), |
@@ -2614,8 +2615,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) |
2614 | 2615 | int use_internal_rev_list = 0; |
2615 | 2616 | int thin = 0; |
2616 | 2617 | int all_progress_implied = 0; |
2617 | | - const char *rp_av[6]; |
2618 | | - int rp_ac = 0; |
| 2618 | + struct argv_array rp = ARGV_ARRAY_INIT; |
2619 | 2619 | int rev_list_unpacked = 0, rev_list_all = 0, rev_list_reflog = 0; |
2620 | 2620 | struct option pack_objects_options[] = { |
2621 | 2621 | OPT_SET_INT('q', "quiet", &progress, |
@@ -2705,24 +2705,24 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) |
2705 | 2705 | if (pack_to_stdout != !base_name || argc) |
2706 | 2706 | usage_with_options(pack_usage, pack_objects_options); |
2707 | 2707 |
|
2708 | | - rp_av[rp_ac++] = "pack-objects"; |
| 2708 | + argv_array_push(&rp, "pack-objects"); |
2709 | 2709 | if (thin) { |
2710 | 2710 | use_internal_rev_list = 1; |
2711 | | - rp_av[rp_ac++] = "--objects-edge"; |
| 2711 | + argv_array_push(&rp, "--objects-edge"); |
2712 | 2712 | } else |
2713 | | - rp_av[rp_ac++] = "--objects"; |
| 2713 | + argv_array_push(&rp, "--objects"); |
2714 | 2714 |
|
2715 | 2715 | if (rev_list_all) { |
2716 | 2716 | use_internal_rev_list = 1; |
2717 | | - rp_av[rp_ac++] = "--all"; |
| 2717 | + argv_array_push(&rp, "--all"); |
2718 | 2718 | } |
2719 | 2719 | if (rev_list_reflog) { |
2720 | 2720 | use_internal_rev_list = 1; |
2721 | | - rp_av[rp_ac++] = "--reflog"; |
| 2721 | + argv_array_push(&rp, "--reflog"); |
2722 | 2722 | } |
2723 | 2723 | if (rev_list_unpacked) { |
2724 | 2724 | use_internal_rev_list = 1; |
2725 | | - rp_av[rp_ac++] = "--unpacked"; |
| 2725 | + argv_array_push(&rp, "--unpacked"); |
2726 | 2726 | } |
2727 | 2727 |
|
2728 | 2728 | if (!reuse_object) |
@@ -2766,8 +2766,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) |
2766 | 2766 | if (!use_internal_rev_list) |
2767 | 2767 | read_object_list_from_stdin(); |
2768 | 2768 | else { |
2769 | | - rp_av[rp_ac] = NULL; |
2770 | | - get_object_list(rp_ac, rp_av); |
| 2769 | + get_object_list(rp.argc, rp.argv); |
| 2770 | + argv_array_clear(&rp); |
2771 | 2771 | } |
2772 | 2772 | cleanup_preferred_base(); |
2773 | 2773 | if (include_tag && nr_result) |
|
0 commit comments