Source Control recommendations

Hey Forum,

For Work, I’m currently looking into Source Control Tools and which one we should use in the future for our Dev-Pipeline.
While research, we found these three possibilities, which would suit our requirements on first glance.

Bitbucket
PlasticSCM
Github

Now i want to ask, if anyone of you has experices with these tools and can suggest, which one we should use in combination with unity. it should work with the Unity Cloud Building system.

Many Thanks in advance,
Dextex / Mike

Those are different things.

Bitbucket and Github are websites that you can use to host your stuff through git.
PlasticSCM is both a host and a source control system.

So you probably should do more research.

3 Likes

So you probably want to look into git vs mercurial vs SVN. You will want to look into git lfs if using git.

Then you need to look into hosts for your given source control choice, which is seperate.

These are not the same things as each other.

1 Like

Git. That’s the version control system. Github and bitbucket are sites that allow you to store git repositories.

you cost money for private repos and bitbucket have 10 gig limit (last I checked) devops is a nice alternative. Free up to 5 members. No hard upper limit. Microsoft will investigate your repo if it grows too big.

1 gig per commit maximum

2 Likes

I know Git is the cool kid right now, but I prefer SVN for solo or small teams. It is really simple to set up your own SVN server, so you don’t need to worry about the very small storage limitations all the Git hosting services put on your projects. So you don’t need to separate your assets from your code, or worry about whether you’re checking in a new asset which is too big. You can just check everything in without worry.

The branching/merging advantages of Git vs SVN don’t usually come into play for small teams or solo projects either. My 2 cents.

3 Likes

With git you can mid story branch off while having modified files and commits these to new branch with ease. Stuff like that makes git valuable even for one man teams

5 Likes

I know, and it is really cool. I’ve just never once needed to do that in the last 9 years of being a solo indie with Unity. If it is important for your projects, you won’t see me telling you not to use Git.

And I never meant to say there is anything wrong with Git anyway. My main problem is really with services like Bitbucket, which charge you per user to the same repository, and act like 10GB storage is somehow not outrageously small for a “Premium” tier account in 2021.

In my case, for $25 a month I’ve rented my own server, with several TB of storage. I run my network game test server on it, a teamspeak server, and my SVN server which can handle unlimited users and effectively unlimited repository size. It works well for me, is pretty cost effective, and no hassles worrying if I really should check in these music files or large textures and models into the repository. Less headache. But that is what works for me, it won’t necessarily be optimal for everyone else.

4 Likes

I use the ease of branching all the time actually. I guess branching is a mindset you get when working alot with distributed versioning.

Give devops a chance, no limit in size, our repo is 100 gigs now. Only limit is 1 gig per commit. And free up to five members.

2 Likes

10GB is not at all outrageously small for a CODE based repository which is what they are selling. A typical large team with 50-100 so developers who use git for a project that lasts a few years and don’t store binary data in the repository won’t come anywhere near that limit.

Given all the whitespace 1 million lines of code fits in a few megabytes. Remember git only stores changes.

The Linux kernel has been developed over 25 years by thousands of contributor, it is 1.5GB.

When I was at Oracle we had a repo worked on by ~500 developers for many years, there was plenty of mistaken binary check-ins, and large data/test files, it was around 7GB.

Sure the windows git repo is 300GB+ but that’s not a typical case even for a large organisation and I expect there is a a lot of binary cruft in there.


To be clear I’m not saying it is suitable for bigger projects in Unity with all the binary assets, but that’s not what they are targetting. The sizing makes perfect sense for their target users.

I think the limit is a pragmatic one, git performance becomes much worse as repository size grows and hosted providers are probably not wanting to bring themselves that headache. Microsoft put in thousands of hours of engineering effort to get their 300GB repo to work well.

1 Like

I know, that’s actually my point. So now you’ve got to separate your code from the rest of your assets in order to check it all into your version control system. What a hassle, and they are charging for the luxury of that hassle. 10GB is outrageously small for a $10 USB thumb drive, let alone a premium account for anything.

In my case, I add anything to my project, any asset, code or not, I just do

svn add <path to folder>
svn commit

And I don’t have to even think about it, how big it is, what kind of files it is, etc. No fuss

3 Likes

I don’t think its right for a large Unity project.

EDIT: If SVN is right for you thats great. It is a fine tool. I don’t think it scales well to large teams doing lots of simultaneous feature development, but thats not relevant if you don’t have a large team.


And as per my edit above, the bitbucket limit is almost certainly not about storage space, they host tens (probably hundreds) of thousands of free git repos. Its about git performance as repo size grows. They would likely need to re-engineer their systems to support very large repositories in a performant and cost effective manner that is suitable for paying customers. I guess they made the decision that it is not worth it.

Git LFS fixes the binary file problem

How large of a team are we talking about here?

1 Like

To be clear I was sayng I don’t think bitbucket is right for a large Unity project. Git is a workable solution.

At Illuvium we’ve been running wtih Perforce Helix hosted by Assembla becasue it was supposed to be more artist friendly, but the performance is not great, and the branch/merge processes are much inferior… whats more the artists stuff up as much as they do with git :slight_smile:

We are looking at moving back to our own git servers.

2 Likes

Git with LFS works well for a code oriented team like ours. We buy art assets and they don’t change much over time.

I guess though that artists don’t versionen their art in the main repo? If I had artists on the team I would have their art workflow being versionen seperate and then incorporate their work as binary files using git LFS

One of the biggest benefits of git is how lightweight the branching process is. Its no trouble at all to use a feature branch based workflow where you create a branch and pull request for each feature.

As you scale it becomes more and more useful to use such approaches.

But there’s no hard numbers. I used this on Platformer Pro asset which only had 1 core developer (me :slight_smile: ) and a few contractors here and there. At a team size of 20+ devs I’d say its trending towards the best approach… but I don’t want to get in to a debate on VCS workflows :slight_smile:

On perforce we had a several art streams (if not familiar perforce stream is basically a branch) which were merged by the lead artists in each area to the core art stream. This core art stream was then merged by the lead tech artist in to the mainline.

We will likely do something similar with git.

EDIT: As you suggest there was also an art versioning process outside of perforce/git for in progress art that hadn’t reached the game ready state, but we do want to get the artists as close to the game as we can (for fast iteration).

2 Likes

I’m just curious as I haven’t had to deal with branching yet even though it’s come up on occasion as in the past I have almost always worked on my own projects. You mention git branching is lightweight. What about svn?

If you have 10 minutes this has a good breakdown: https://softwareengineering.stackexchange.com/questions/344474/understanding-the-difference-of-branch-between-svn-and-git

But in short SVN branches are not lightweight. If you want to do feature based branching then you probably don’t want to use SVN. But this workflow isn’t the be all and end all, particularly for a solo dev or small team. Sometimes I just use it ouf of habit because a lot of the work I do is in a context where it does make sense.

2 Likes