reflog: reduce scope of "struct rev_info"

Change the "cmd.stalefix" handling added in 1389d9ddaa6 (reflog expire --fix-stale, 2007-01-06) to use a locally scoped "struct rev_info". This code relies on mark_reachable_objects() twiddling flags in the walked objects. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed Dec 22, 2021 at 05:06 UTC 994b328f3662688d93233ed2215855e95d83e57a
1 file changed +7 -6
builtin/reflog.c
+7 -6
@@ -28,7 +28,6 @@ static timestamp_t default_reflog_expire;
28 static timestamp_t default_reflog_expire_unreachable;
29
30 struct cmd_reflog_expire_cb {
31 - struct rev_info revs;
31 int stalefix;
32 timestamp_t expire_total;
33 timestamp_t expire_unreachable;
@@ -594,13 +593,15 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
593 * from reflog if the repository was pruned with older git.
594 */
595 if (cmd.stalefix) {
597 - repo_init_revisions(the_repository, &cmd.revs, prefix);
598 - cmd.revs.do_not_die_on_missing_tree = 1;
599 - cmd.revs.ignore_missing = 1;
600 - cmd.revs.ignore_missing_links = 1;
596 + struct rev_info revs;
597 +
598 + repo_init_revisions(the_repository, &revs, prefix);
599 + revs.do_not_die_on_missing_tree = 1;
600 + revs.ignore_missing = 1;
601 + revs.ignore_missing_links = 1;
602 if (flags & EXPIRE_REFLOGS_VERBOSE)
603 printf(_("Marking reachable objects..."));
603 - mark_reachable_objects(&cmd.revs, 0, 0, NULL);
604 + mark_reachable_objects(&revs, 0, 0, NULL);
605 if (flags & EXPIRE_REFLOGS_VERBOSE)
606 putchar('\n');
607 }