Git development
 help / color / mirror / Atom feed
* reflog expire: default expiry times swapped since 2.50
@ 2026-09-19 18:32 r.norouzi
  2026-09-22 16:54 ` [PATCH] reflog: fix default expiry periods Pushkar Singh
  0 siblings, 1 reply; 19+ messages in thread
From: r.norouzi @ 2026-09-19 18:32 UTC (permalink / raw)
  To: git@vger.kernel.org

What did you do before the bug happened? (Steps to reproduce your issue)

I made a reflog entry 60 days old on a branch that still contains the
commit, then i asked what "git reflog expire" would prune, with no
gc.reflogExpire or gc.reflogExpireUnreachable configured:

    git init -q -b main repro && cd repro
    t=$(date -d '60 days ago' +%s)
    GIT_COMMITTER_DATE="@$t +0000" GIT_AUTHOR_DATE="@$t +0000" \
            git commit -q --allow-empty -m old
    git commit -q --allow-empty -m new
    git reflog expire --dry-run --verbose main

What did you expect to happen? (Expected behavior)

The entry for "old" to be kept. The documentation of gc.reflogExpire says
it defaults to 90 days, and gc.reflogExpireUnreachable to 30 days.

What happened instead? (Actual behavior)

    prune commit (initial): old
    keep commit: new

With -c gc.reflogExpire=90.days.ago the entry is kept.

What's different between what you expected and what actually happened?

Reachable entries expire after 30 days instead of 90. Since the total
cut-off is checked first, every entry older than 30 days is now pruned,
and the unreachable cut-off never matters.

Anything else you want to add:

The defaults look swapped in 85658275702b (builtin/reflog: stop storing
default reflog expiry dates globaly), first released in 2.50.0. Before
it, builtin/reflog.c had

    default_reflog_expire_unreachable = now - 30 * 24 * 3600;
    default_reflog_expire = now - 90 * 24 * 3600;

and reflog.h now has

    .default_expire_total = now - 30 * 24 * 3600, \
    .default_expire_unreachable = now - 90 * 24 * 3600, \

master still has the reflog.h version. Seen with 2.55.0 (Git for
Windows 2.55.0.windows.5); the code in question is not platform
specific.


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2026-09-29 18:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-19 18:32 reflog expire: default expiry times swapped since 2.50 r.norouzi
2026-09-22 16:54 ` [PATCH] reflog: fix default expiry periods Pushkar Singh
2026-09-22 17:27   ` Junio C Hamano
2026-09-22 18:02     ` Jeff King
2026-09-23 12:21       ` Patrick Steinhardt
2026-09-23 10:21   ` [PATCH v2] " Pushkar Singh
2026-09-23 19:26     ` Junio C Hamano
2026-09-24 14:12       ` Patrick Steinhardt
2026-09-24 15:46         ` Jeff King
2026-09-24 17:45           ` Junio C Hamano
2026-09-24 18:43             ` Jeff King
2026-09-28  6:53               ` Patrick Steinhardt
2026-09-24 17:43         ` Junio C Hamano
2026-09-24 17:58     ` [PATCH v3] " Pushkar Singh
2026-09-24 18:26       ` Junio C Hamano
2026-09-28  7:02       ` Patrick Steinhardt
2026-09-28 14:50         ` Junio C Hamano
2026-09-29  5:45           ` Patrick Steinhardt
2026-09-29 18:31             ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox