Remove stale environment refs
Problem to solve
Every environment created results in a new ref/environments being created, and these appear to never be deleted. This results in all these refs being transferred in every push. Even a tiny 1 line change must transfer all this data, making Git very slow.
For example, on the www-gitlab-com project:
- 70% of the 285,000 refs are
refs/environments - 45% of the 285,000 refs are
refs/environments/review
The total refs transferred is 25MB uncompressed, and 7MB compressed.
Further details
Proposal
- Ephemeral environments like review apps should have their refs cleaned up
- Environment refs should be expired when they are past a certain age and have been superseded
These does not mean the data will be deleted. A refs/keep-around can be created. These are hidden, and therefore excluded from ref advertisement.