Skip to content

Changes to refspecs are ignored after updating to 14.1

Summary

Our pull mirroring setups started to ignore refspec changes in repositories' config files after updating to 14.1.

Steps to reproduce

  • Have custom refspecs in repository mirrors. E.g. we would like to mirror master only:
[remote "upstream"]
        url = https://example.com/foobar.git
        fetch = +refs/heads/master:refs/remotes/upstream/master
  • Update to 14.1
  • Mirrors start to mirror what they could mirror by default, customizations above are ignored

More info

Since 14.1, there were the implicit changes in the pull mirroring logic:

These ones were found while investigating described problems with our mirroring setup. These feature flags are enabled by default since 14.1. Disabling those feature flags has restored "gone" functionality for us.

It looks like these feature flags will be removed in 14.2. How do we proceed afterwards? We rely on our refspecs customizations heavily and these changes block further update path for us.

What is the current bug behavior?

Mirroring ignores refspec changes in a repository's config file when :update_remote_mirror_inmemory/:fetch_remote_params are enabled. Both were disabled to restore the functionality.

What is the expected correct behavior?

Mirroring always takes into account refspec changes in a repository's config file.

Miscellaneous

This happens with GitLab 14.1.1-ee, Ultimate plan, Omnibus.

If any extra info is needed, just ping me.