cli/test: Fix failures related to remote HEAD

Two tests assumed that `refs/remotes/rad/HEAD` would automatically be
crated.  It turns out, however, that this only the case if executed
with Git 2.48.0 or newer. Git versions older than 2.48.0 do not touch
'refs/remotes/<remote>/HEAD'.

Git 2.48.0 and newer will update `refs/remotes/<remote>/HEAD` by
default. This can be disabled by setting
`remote.<remote>.followRemoteHEAD` to "never". Thus, with these
versions, setting that configuration to "never" emulates the behaviour
of older versions.

Therefore, to ensure that test results are consistent across Git
versions before and after 2.48.0, the fixture of test repositories
now include setting 'remote.rad.followRemoteHEAD = never'.

The affected tests are adjusted accordingly.

This change can possibly be reverted once Radicle requires usage of Git
2.48.0 or newer.

Co-authored-by: Lorenz Leutgeb <lorenz.leutgeb@radicle.xyz>
This commit is contained in:
Richard Levitte 2026-04-20 09:12:54 +02:00 committed by Lorenz Leutgeb
parent 6ce2d00be2
commit 354805aeb3
3 changed files with 11 additions and 2 deletions

View File

@ -22,7 +22,6 @@ $ git branch -r
$ git pull $ git pull
Already up to date. Already up to date.
$ git branch -r $ git branch -r
rad/HEAD -> rad/master
rad/master rad/master
rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb
``` ```

View File

@ -62,7 +62,6 @@ And let's look at our local and remote refs:
$ git show-ref $ git show-ref
42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1 42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/HEAD
f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master
42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6 42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6
``` ```

View File

@ -122,6 +122,17 @@ fn repository_with<P: AsRef<Path>>(
let mut config = repo.config().unwrap(); let mut config = repo.config().unwrap();
config.set_str("user.name", USER_NAME).unwrap(); config.set_str("user.name", USER_NAME).unwrap();
config.set_str("user.email", USER_EMAIL).unwrap(); config.set_str("user.email", USER_EMAIL).unwrap();
// In Git 2.48.0, the option `remote.<name>.followRemoteHEAD` was added.
// Git versions older than 2.48.0 behave as if this option is set to
// `never`.
// We set it explicitly here for testing purposes, for consistent output
// of commands like `git branch -r` and `git show-ref`.
// Once Radicle requires Git 2.48.0 or newer, we can remove this
// (and adjust our tests to the new default behavior, creating `HEAD`).
config
.set_str("remote.rad.followRemoteHEAD", "never")
.unwrap();
} }
let sig = git::raw::Signature::new( let sig = git::raw::Signature::new(