I kicked off Git garbage collection on our side.
When you push changes to your repository, any objects that become orphan are not immediately deleted. Let's say you amended a commit by changing all of its files and pushed the new version – in that case the previous version of that commit (commit object, tree object and blob objects for every file) become loose and can be deleted. However, for the sake of performance Git just inserts the new objects and doesn't always delete the old objects straight away. Instead, it runs so called garbage collection from time to time, which is a mechanism to identify loose objects and delete them.
Normally garbage collection is triggered automatically when you push commits to your repository, however it doesn't happen on every push because GC is potentially quite expensive operation, especially when the repository becomes large. Our Git configuration has some heuristics around when and what kind of GC to trigger (it has several levels of "aggressiveness").
So under normal circumstances any loose objects will eventually be deleted as long as you keep working on the repository by making new pushes. But for some time Bitbucket would show a larger repository size than it actually is. Now, the problem might occur if you hit the size limit – in that case another mechanism kicks in which might put your repository in read-only state. Even if you managed to remove, say, a big file, GC might've not been triggered that time, so Bitbucket would still reflect larger size. This is when a manual GC might be required.
Does this make sense?
We are excited to announce the open beta program for self-hosted runners. Bitbucket Pipelines Runners is available to everyone. Please try it and let us know your feedback. If you have any issue...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events