Existing Mercurial tags with escaped characters: Developers cannot push
Removal of tags on the GitLab side was introduced for #448 (closed), in the same release as protections requiring the Maintainer (or future Publisher) role to change anything in tags (#451 (closed)).
But the mapping of Mercurial tags to Git tags is not one-to-one, having to cope with different restrictions on both sides. In particular, spaces (0x20) in a Mercurial tag are converted to underscores (0x5f).
The GitLab-side tags removal does not take that into account. This results in all pushes being considered to change tags.
Practical consequences:
- Developers cannot push, because they can't change tags. This is how the issue has been noticed.
- Maintainers can push, but that either removes or reinstates some tags on the GitLab side. This can trigger other consequences, such as running unwanted tag pipelines etc.
Final note: that the mapping is not perfect is a problem in itself, creating another potential difference between native and hg-git based Mercurial projects.