| 111 | } |
| 112 | |
| 113 | void pack_geometry_repack_promisors(struct repository *repo, |
| 114 | const struct pack_objects_args *args, |
| 115 | const struct pack_geometry *geometry, |
| 116 | struct string_list *names, |
| 117 | const char *packtmp) |
| 118 | { |
| 119 | struct child_process cmd = CHILD_PROCESS_INIT; |
| 120 | FILE *in; |
| 121 | |
| 122 | if (!geometry->promisor_split) |
| 123 | return; |
| 124 | |
| 125 | prepare_pack_objects(&cmd, args, packtmp); |
| 126 | strvec_push(&cmd.args, "--stdin-packs"); |
| 127 | cmd.in = -1; |
| 128 | if (start_command(&cmd)) |
| 129 | die(_("could not start pack-objects to repack promisor packs")); |
| 130 | |
| 131 | in = xfdopen(cmd.in, "w"); |
| 132 | for (size_t i = 0; i < geometry->promisor_split; i++) |
| 133 | fprintf(in, "%s\n", pack_basename(geometry->promisor_pack[i])); |
| 134 | for (size_t i = geometry->promisor_split; i < geometry->promisor_pack_nr; i++) |
| 135 | fprintf(in, "^%s\n", pack_basename(geometry->promisor_pack[i])); |
| 136 | fclose(in); |
| 137 | |
| 138 | finish_repacking_promisor_objects(repo, &cmd, names, packtmp); |
| 139 | } |
no test coverage detected