Unity Version Control. Why is it terrible?

I’m constantly running into problems with version control across multiple projects. I’ve rarely had issues with the legacy plastic SCM, but the moment Unity gets its hands on it it falls apart. Its collab all over again. Last week it was a wild permissions bug, which seem to have resolved since the latest hub update. Now I can’t make pushes to any existing repo. It hangs indefinitely on “searching dependencies.” Cool.

unity logged this error -

ERROR OS version - Couldn’t get OS info from System.Management: The method or operation is not implemented.

Ill give it the old college try for a few hours before I switch back to legacy plastic SCM or github. Honestly I don’t expect this to get fixed without some other bug cropping up anyway; I’m probably wasting my time.

The actual topic of conversation I would like to have is why is Unity historically so bad at version control, and at what point will they give up and stop trying, or take the matter seriously? Are they simply in a habit of releasing features before they are tested? Are we beta testing for them without being paid? The UI is excellent and exactly what it needs to be, but the tools just never work for more than a week or two before catastrophically breaking down. Is Unity even aware of its shortcomings with this? They seemed aware of it with collab, which I assume is why it was abandoned.

2 Likes

Thanks for providing your feedback. I’m sorry you feel this way.

As someone who has been with Unity from the Collaborate days, to the Plastic SCM acquisition, to where we are now, it saddens me to hear that you think Unity does not take version control seriously.

Collab was ok(ish) for small teams with small projects but did not scale well which is why it was depreciated and replaced with Plastic SCM (now called Unity Version Control).

To reply to your discussion, my opinion is that Unity Version Control is a far more superior Source Control service than Collab and the best source control system for Unity projects. More powerful in terms of features and more powerful in terms of scalability with bigger projects, assets, and teams, but I do understand if you think that I am slightly biased, as Unity pays me! :slight_smile:

I work on the support team and we are highly interested in getting to the bottom of any problems our customers face, getting them back to creating ASAP. Please reach out to us here and we will be happy to help.

2 Likes

the OP mentioned two bugs or issues, but instead of addressing this, you simply talked past it and made affirming statements about Unity source control.

I’m sorry if it hurts to hear this, but Unity Source Control is terrible. As a user, I too am getting crashes and “bug splat” popups pretty often using it. Trying to manage branches is a huge nightmare – the usability and UX is atrocious (specifically the “Unity Version Control” window in the editor, the standalone program is not as bad). It’s a huge waste of time, and it’s unsafe to use because it’s such a clunky system that you are likely to accidently overwrite or delete changes by accident.

If anybody is reading this trying to decide whether to use Unity Source Control, please don’t. There are other options out there, such as just using Github and opting in to their paid service to get more storage so that you can upload your assets.

It’s genuinely bewildering to me why Unity would spend to much money to build their own source control when Git has been around for decades, is the standard for software engineering, is as easy to learn for beginners as Unity’s source control, and there’s no reason why it can’t just be used with Unity. It’s genuinely perplexing. All Unity needed to do was let devs write Git in some termanal and they could charge the same amount they are charging now to let devs upload their repo to the cloud. But trying to make their own thing was just a collosally bad idea

Thanks for replying @holycrapjohn.

I do not want to talk past any issues that are being experienced, quite the opposite. If you are experiencing problems, please log a ticket with the support team and we will be more than happy to investigate. This is not to minimise or to avoid your problems, but we will likely need to gather more information that cannot be shared in a public forum to address it (i.e. logs, organization name, screenshots, etc.)

Git has it’s pros and cons just like any other source control system. Git’s biggest con for game development (in my opinion) is that it is designed for small code files and does not handle large binary files without the use of something like LFS. Git stores copies of entire revisions of every single file meaning performance often degrades with project size, especially when binary files dominate, whereas the Plastic SCM technology under the hood of Unity Version Control stores delta revisions for binaries reducing bloating and improving performance.

This is just one reason of many for choosing Unity Version Control, but if Git works for you or your team then that is OK too.

I’m going to be honest here, I agree with the other 2 posters here.
This VCS system has no effort put into it, not into the web view, and not in the Unity integration. I shouldn’t have to follow some tutorial to know how to do a code review and merge changes if I’m a senior software dev already. this should be intuitive.
And just look at this:


What even is this UI? this is the latest version of Unity btw. how does this make it through QA testing to begin with? it’s on every single label and button. You can’t miss it and it makes the UI barely readable.

1 Like

I wonder that with too many things in Unity :grinning_face_with_smiling_eyes: constantly stumbling on issues that can be found in a few minutes of using the Editor and fixed before even submitting to QA (do they even have one?).
LTS now feel like alpha releases, most issues get fixed only by 10th release

@gluckez is this Linux? The package is not supported in Linux.

Which package version and OS are you using? The Unity package for Version Control has recently received a lot of updates (including a branch explorer view), and we are not aware of any major issue with it.

yes, it’s Ubuntu 24.04 LTS. where in the documentation is it mentioned that it’s not supported in Linux?
I see the install instructions for linux, but not that it’s not supported. it’s version 2.12, installed by default with Editor 6000.3.14f1 via Unity hub.

Initially we also tried to use the UVC plugin, then they said it won’t work, they don’t really care about it for a long time.
I can recommend the separate UVC (Unity DevOps Version Control) application (so far), it works for our small team. And we are on CachyOS and Fedora, not really over-supported Linux distros. So if you can, try using that.

Thanks @Lurking-Ninja
I totally agree. If you aere using Linux, The VC (Unity DevOps Version Control) standalone application should is the best approach.

I wish everything could just be perforce.