Hi! What does one do with a repository that is constantly growing with very large branches that are no longer needed? Because a branch with even a single changeset cannot be deleted, one is left with branches that take up quite a lot of space.
Is the solution to move your game engine project to a new repository and delete the previous one?
I doubt that this is true. Any version control system I’ve ever used allows you to delete branches. Or commits, or just about anything.
Are you sure you are not misreading a warning when trying to delete the branch?
A branch should not occupy more space than the differences committed to it. If you make a branch to a 10 GiB project your repository will grow by a few KiB of organizational data, no more. If you push a new 1 GiB file to the branch, then your repository will grow by 1 GiB naturally. If you delete that file, your repository will still occupy the same disk space unless you also purge deleted files - since normally you need to trust source control to be able to recover deleted files.
I would be surprised if VCS works differently in any of these aspects than git, CVS, Perforce, Subversion, etc.
Thanks for replying to our thread! Have you had a chance to actually work with Unity VCS? We attempted to delete a branch but instead got a message that deletion is not possible because there are changesets inside this branch. We then found the following article on Plastic SCM’s (now called Unity VCS) website: https://blog.plasticscm.com/2018/08/why-we-dont-delete-branches-in-plastic.html
Although the blog post is over 6 years old, it appears that the inability to delete branches still hasn’t changed.
We are using Unreal Engine and our issue falls under the following use case:
“One or more of the changesets in the branch are the source of a merge, and the destination changeset of the merge falls outside of the branch.”
This is because we create feature branches that then have to be merged back into the main branch. We’ll look into the Purge option.
I suppose the final solution is to copy over the latest project files into a brand new repository and delete the previous repo. If someone knows of a better way to achieve that without deleting the repo, please let us know.