Skip to content

Conversation

Byron
Copy link
Member

@Byron Byron commented Aug 22, 2025

Tasks

  • report
  • timesheet
  • post

@Byron
Copy link
Member Author

Byron commented Aug 22, 2025

#2131

@Byron Byron marked this pull request as ready for review August 22, 2025 07:25
@Byron
Copy link
Member Author

Byron commented Aug 22, 2025

@EliahKagan As a heads-up, it seems CI is broken now because Git changed and probably packs references more often or more aggressively. There seems to be at least one script that assumes the presence of a loose reference that is now packed.
I will merge this PR as it's clearly unrelated, and hope to get to fixing this soon. If you get to it before me, I'd also appreciate it.

@Byron Byron merged commit 2381693 into main Aug 22, 2025
25 of 27 checks passed
@Byron Byron deleted the report branch August 22, 2025 07:28
@EliahKagan
Copy link
Member

EliahKagan commented Aug 22, 2025

The new CI failures all strongly appear to be due to the change in git/git@a5a727c. The ubuntu-latest runner image was recently upgraded to Git 2.51.0, which includes this change, which disallows something that would often be unintentional but that we are deliberately doing in a fixture script used in multiple tests.

I'm working on this now, and I expect to be able to fix it by using git config instead of git remote. If for some reason that doesn't work, then directly editing the config file should work.

If for some reason that doesn't work, I believe the previous version is still available from the git-core PPA so we may be able to downgrade to it on CI as a temporary measure. If for some reason we can't do that, we can downgrade even further as a temporary measure by using git from Ubuntu's own repositories (the runner has Ubuntu 24.04, so its non-PPA git is new enough for our test suite).

EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Aug 22, 2025
Starting in Git 2.51.0, at least one of the `git remote` commands
in the `make_remote_config_repos.sh` fixutre script fails, which
causes a subsequently run command depending on it to fail. This is
the cause of the CI failures observed in GitoxideLabs#2130.

But when any command fails, the intention is that the script fails
fast. To help achieve this, `set -e` is used. But the rules for
`set -e` have a number of exceptions. At least in some versions of
`bash`, the way `&&` was being used kept it from failing fast.

This changes that to run the commands separately, surfacing the
specific `git remote` command that fails, rather than a subsequent
command that fails later as a result of the first failure.
EliahKagan added a commit to EliahKagan/gitoxide that referenced this pull request Aug 22, 2025
Instead of `git remote`.

Since Git 2.51.0, path collisions in remote names are automatically
detected and rejected when `git remote add` is used to attempt to
add them, since creating such collisions is usually unintentional:
git/git@a5a727c

However, we deliberately do this in our test suite, in the
`make_remote_config_repos.sh` fixture script. When Git 2.51.0 came
to be used on CI, some new test failures arose as a result, as
observed in GitoxideLabs#2130.

This fixes the script by using two `git config` commands rather
than a `git remote` command to produce the overlap. This technique
is (intentionally) still allowed in Git 2.51.0.
@EliahKagan
Copy link
Member

The new CI failures are fixed since #2132.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants