From: Junio C Hamano <gitster@xxxxxxxxx> The comment in this block is meant to indicate that passing '--all', '--reflog', and so on aren't necessary when repacking with the '--geometric' option. But, it has two problems: first, it is factually incorrect ('--all' is *not* incompatible with '--stdin-packs' as the comment suggests); second, it is quite focused on the geometric case for a block that is guarding against it. Reword this comment to address both issues. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Taylor Blau <me@xxxxxxxxxxxx> --- builtin/repack.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/builtin/repack.c b/builtin/repack.c index 677c6b75c1..6ce2556c9e 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -545,12 +545,14 @@ int cmd_repack(int argc, const char **argv, const char *prefix) strvec_push(&cmd.args, "--non-empty"); if (!geometry) { /* - * 'git pack-objects' will up all objects loose or packed - * (either rolling them up or leaving them alone), so don't pass - * these options. + * We need to grab all reachable objects, including those that + * are reachable from reflogs and the index. * - * The implementation of 'git pack-objects --stdin-packs' - * makes them redundant (and the two are incompatible). + * When repacking into a geometric progression of packs, + * however, we ask 'git pack-objects --stdin-packs', and it is + * not about packing objects based on reachability but about + * repacking all the objects in specified packs and loose ones + * (indeed, --stdin-packs is incompatible with these options). */ strvec_push(&cmd.args, "--all"); strvec_push(&cmd.args, "--reflog"); -- 2.30.0.667.g81c0cbc6fd