From: "D. Ben Knoble" <ben.knoble@gmail.com>
To: git@vger.kernel.org
Cc: Thomas Bachem <mail@thomasbachem.com>,
Eli Barzilay <eli@barzilay.org>,
Phillip Wood <phillip.wood@dunelm.org.uk>,
Junio C Hamano <gitster@pobox.com>,
"D. Ben Knoble" <ben.knoble@gmail.com>
Subject: [PATCH v4 4/5] t5520: don't expire reflogs where it matters
Date: Tue, 29 Sep 2026 08:18:30 -0400 [thread overview]
Message-ID: <2ac371d2dc1425cc47bf369e88b321d3c0c8c605.1790684309.git.ben.knoble@gmail.com> (raw)
In-Reply-To: <cover.1790684309.git.ben.knoble@gmail.com>
From: Thomas Bachem <mail@thomasbachem.com>
The "--rebase -f with rebased upstream" test computes its fork point
from the reflog of refs/remotes/me/copy, and the entry it needs is
the one that the fetch of the test before it wrote. Like every reflog
entry the suite writes after test_tick, it is dated 2005, so the
first "git reflog expire --all" after that fetch removes it. Pull
then finds no fork point and rebases onto the merge head with the
merge head as the upstream, and the rewound commits come back as a
conflict.
Since 452b12c2e0 (builtin/maintenance: use "geometric" strategy by
default, 2026-02-24) auto maintenance runs that expiry once the reflog
of HEAD holds a hundred entries it would remove, the default of
maintenance.reflog-expire.auto. Which run crosses the threshold
depends on the entries and maintenance runs before it, so the script
passed by chance: a stash topic that no longer runs "git reset" from
"stash apply --index" and a rebase topic that runs auto maintenance
at the end of "git rebase" together move the expiry between the two
tests.
Pin the expiry as ea7d894f44 (t34xx: don't expire reflogs where it
matters, 2026-02-24) did for the rebase tests. That covers a "git gc"
as well, which expires reflogs on its own, where turning off the auto
trigger of the reflog-expire task alone would not.
Reported-by: Junio C Hamano <gitster@pobox.com>
Helped-by: D. Ben Knoble <ben.knoble@gmail.com>
Helped-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Assisted-by: Claude Fable 5.1
Signed-off-by: Thomas Bachem <mail@thomasbachem.com>
Signed-off-by: D. Ben Knoble <ben.knoble@gmail.com>
---
t/t5520-pull.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 27f38ab3c8..bc818605a5 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -35,6 +35,12 @@ test_pull_autostash_fail () {
}
test_expect_success setup '
+ # Commit dates are hardcoded to 2005, and the reflog entries will have
+ # a matching timestamp. Maintenance may thus immediately expire
+ # reflogs if it was running.
+ git config set gc.reflogExpire never &&
+ git config set gc.reflogExpireUnreachable never &&
+
echo file >file &&
git add file &&
git commit -a -m original
--
2.56.0.rc1.315.gc6ed9934b7.dirty
next prev parent reply other threads:[~2026-09-29 12:20 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-19 21:26 [PATCH 0/2] Hi all, D. Ben Knoble
2026-09-19 21:26 ` [PATCH 1/2] builtin/stash: remove unused header D. Ben Knoble
2026-09-21 15:10 ` Junio C Hamano
2026-09-19 21:26 ` [PATCH 2/2] builtin/stash: merge index in-core D. Ben Knoble
2026-09-21 13:17 ` Phillip Wood
2026-09-22 12:43 ` D. Ben Knoble
2026-09-22 12:51 ` D. Ben Knoble
2026-09-22 13:57 ` Phillip Wood
2026-09-22 20:34 ` D. Ben Knoble
2026-09-19 21:32 ` [PATCH 0/2] Hi all, D. Ben Knoble
2026-09-23 12:58 ` [PATCH v2 0/4] stash: clean up index-mode test merge D. Ben Knoble
2026-09-23 12:58 ` [PATCH v2 1/4] builtin/stash: remove unused header D. Ben Knoble
2026-09-23 12:58 ` [PATCH v2 2/4] stash: prepare merge options earlier D. Ben Knoble
2026-09-23 12:58 ` [PATCH v2 3/4] t: test failed "stash apply --index" D. Ben Knoble
2026-09-24 9:42 ` Phillip Wood
2026-09-25 13:36 ` D. Ben Knoble
2026-09-25 15:45 ` Phillip Wood
2026-09-26 9:53 ` Phillip Wood
2026-09-26 12:07 ` D. Ben Knoble
2026-09-23 12:58 ` [PATCH v2 4/4] builtin/stash: merge index in-core D. Ben Knoble
2026-09-24 9:42 ` Phillip Wood
2026-09-25 12:55 ` D. Ben Knoble
2026-09-25 15:58 ` Phillip Wood
2026-09-25 16:16 ` D. Ben Knoble
2026-09-24 21:59 ` Junio C Hamano
2026-09-25 4:12 ` Junio C Hamano
2026-09-25 13:00 ` D. Ben Knoble
2026-09-25 16:24 ` Junio C Hamano
2026-09-26 9:51 ` Phillip Wood
2026-09-26 12:04 ` D. Ben Knoble
2026-09-25 16:04 ` Phillip Wood
2026-09-25 16:17 ` D. Ben Knoble
2026-09-25 16:49 ` Junio C Hamano
2026-09-26 12:16 ` [PATCH v3 0/5] stash: clean up index-mode test merge D. Ben Knoble
2026-09-26 12:16 ` [PATCH v3 1/5] builtin/stash: remove unused header D. Ben Knoble
2026-09-26 12:16 ` [PATCH v3 2/5] stash: prepare merge options earlier D. Ben Knoble
2026-09-26 12:16 ` [PATCH v3 3/5] t3903: test stash --index merges D. Ben Knoble
2026-09-28 15:44 ` Phillip Wood
2026-09-28 15:55 ` D. Ben Knoble
2026-09-29 9:41 ` Phillip Wood
2026-09-26 12:16 ` [PATCH v3 4/5] t3903: test failed "stash apply --index" D. Ben Knoble
2026-09-26 12:16 ` [PATCH v3 5/5] builtin/stash: merge index in-core D. Ben Knoble
2026-09-27 18:59 ` Junio C Hamano
2026-09-28 12:02 ` D. Ben Knoble
2026-09-28 9:40 ` Junio C Hamano
2026-09-28 12:03 ` D. Ben Knoble
2026-09-28 15:32 ` Junio C Hamano
2026-09-26 12:20 ` [PATCH v3 0/5] stash: clean up index-mode test merge D. Ben Knoble
2026-09-27 19:21 ` Junio C Hamano
2026-09-28 9:50 ` Phillip Wood
2026-09-28 12:05 ` D. Ben Knoble
2026-09-28 12:33 ` D. Ben Knoble
2026-09-28 13:00 ` D. Ben Knoble
2026-09-28 13:45 ` Phillip Wood
2026-09-28 14:50 ` Thomas Bachem
2026-09-28 15:36 ` D. Ben Knoble
2026-09-29 11:38 ` D. Ben Knoble
2026-09-29 15:54 ` Phillip Wood
2026-09-28 15:40 ` Phillip Wood
2026-09-29 12:18 ` [PATCH v4 " D. Ben Knoble
2026-09-29 12:18 ` [PATCH v4 1/5] builtin/stash: remove unused header D. Ben Knoble
2026-09-29 12:18 ` [PATCH v4 2/5] stash: prepare merge options earlier D. Ben Knoble
2026-09-29 12:18 ` [PATCH v4 3/5] t3903: test failed "stash apply --index" D. Ben Knoble
2026-09-29 12:18 ` D. Ben Knoble [this message]
2026-09-29 15:46 ` [PATCH v4 4/5] t5520: don't expire reflogs where it matters Phillip Wood
2026-09-29 12:18 ` [PATCH v4 5/5] builtin/stash: merge index in-core D. Ben Knoble
2026-09-29 20:07 ` Junio C Hamano
2026-09-30 1:29 ` D. Ben Knoble
2026-09-29 15:48 ` [PATCH v4 0/5] stash: clean up index-mode test merge Phillip Wood
2026-09-29 17:31 ` Ben Knoble
2026-09-30 21:26 ` D. Ben Knoble
2026-09-30 21:24 ` [PATCH v5 0/4] " D. Ben Knoble
2026-09-30 21:24 ` [PATCH v5 1/4] builtin/stash: remove unused header D. Ben Knoble
2026-09-30 21:24 ` [PATCH v5 2/4] stash: prepare merge options earlier D. Ben Knoble
2026-09-30 21:24 ` [PATCH v5 3/4] t3903: test failed "stash apply --index" D. Ben Knoble
2026-09-30 21:24 ` [PATCH v5 4/4] builtin/stash: merge index in-core D. Ben Knoble
2026-10-01 15:52 ` [PATCH v5 0/4] stash: clean up index-mode test merge Phillip Wood
2026-10-01 17:47 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2ac371d2dc1425cc47bf369e88b321d3c0c8c605.1790684309.git.ben.knoble@gmail.com \
--to=ben.knoble@gmail.com \
--cc=eli@barzilay.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mail@thomasbachem.com \
--cc=phillip.wood@dunelm.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox