builtin/repack.c: pass "out" to `prepare_pack_objects`
`builtin/repack.c`'s `prepare_pack_objects()` is used to prepare a set of arguments to a `pack-objects` process which will generate a desired pack. A future patch will add an `--expire-to` option which allows `git repack` to write a cruft pack containing the pruned objects out to a separate repository. Prepare for this by teaching that function to write packs to an arbitrary location specified by the caller. All existing callers of `prepare_pack_objects()` will pass `packtmp` for `out`, retaining the existing behavior. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Taylor Blau committed
Oct 24, 2022 at 14:43 UTC
4e7b65ba8e7b4174c4ab249b64c6cb3ad0009732
1 file changed
+6
-5
builtin/repack.c
+6
-5
@@ -188,7 +188,8 @@ static void remove_redundant_pack(const char *dir_name, const char *base_name)
188
}
189
190
static void prepare_pack_objects(struct child_process *cmd,
191
- const struct pack_objects_args *args)
191
+ const struct pack_objects_args *args,
192
+ const char *out)
193
{
194
strvec_push(&cmd->args, "pack-objects");
195
if (args->window)
@@ -211,7 +212,7 @@ static void prepare_pack_objects(struct child_process *cmd,
212
strvec_push(&cmd->args, "--quiet");
213
if (delta_base_offset)
214
strvec_push(&cmd->args, "--delta-base-offset");
214
- strvec_push(&cmd->args, packtmp);
215
+ strvec_push(&cmd->args, out);
216
cmd->git_cmd = 1;
217
cmd->out = -1;
218
}
@@ -275,7 +276,7 @@ static void repack_promisor_objects(const struct pack_objects_args *args,
276
FILE *out;
277
struct strbuf line = STRBUF_INIT;
278
278
- prepare_pack_objects(&cmd, args);
279
+ prepare_pack_objects(&cmd, args, packtmp);
280
cmd.in = -1;
281
282
/*
@@ -673,7 +674,7 @@ static int write_cruft_pack(const struct pack_objects_args *args,
674
FILE *in, *out;
675
int ret;
676
676
- prepare_pack_objects(&cmd, args);
677
+ prepare_pack_objects(&cmd, args, packtmp);
678
679
strvec_push(&cmd.args, "--cruft");
680
if (cruft_expiration)
@@ -861,7 +862,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
862
863
sigchain_push_common(remove_pack_on_signal);
864
864
- prepare_pack_objects(&cmd, &po_args);
865
+ prepare_pack_objects(&cmd, &po_args, packtmp);
866
867
show_progress = !po_args.quiet && isatty(2);
868