Recently Unity 2.6 came out. And I really love all these new features!! Especially the possibility to use a standard version control system. But bevor we adapt everything to the new workflow, I’d like to know, which is the best scm tool for unity projects. So first of all a few words about the requirements for our small team of two 3d-artists and two programmers (might be similar for many other teams):
SCM - must have:
windows and mac os compatible without conflicts
licence free clients
easy to use even for non programmers
stable and continuously improved tool
deal with binary files
fast transfer/update even of large files
possibility to be accessed via the web (WebDAV or similar)
SCM - nice to have:
particularly suitable for typically used files (fbx, png, jpg, ogg, ogv, js)
little disk space requirements for slightly altered versions of a project
possibility to create different branches of a project
limiting access to certain folders for each user
Based on these requirements some of the known tools (such as Perforce, Git, MogWare or AlienBrain) have already been eliminated. But there are still some systems that require a more detailed investigation. I’m thinking in particular of the very popular tool SVN (Is it really so suboptimal for binaries?), Bazaar (Is it really so slow?) or Mercurial (What are the disadvantages here?). On this website I found a pretty good comparison of the different vc systems:
But I’d like to hear from the unity community itself, which system are you using for your projects? And why? Does anybody have experiences with one of the referred (or maybe another) tool and can tell something about the advantages and disadvantages? Are there any restrictions or other terms to think of (e.g. the naming of paths)?
This question might be a bit premature as 2.6 just came out and Unity community has been a slave to either the Unity asset server/client or hacking together whatever they can to control version and source.
The past 6 months of dev since we started using Unity has been a real PITA for this reason only. We started with SVN, switched to GIT and now might go back to SVN when we upgrade to 2.6. In the AAA industry most people I know use Perforce or AlienBrain.
This is an excellent question and I would also like to know what people are using or PLANNING on using with Unity 2.6.
There is no such SCM as easy to use, powerfull and crossplatform does not develop itself and collides with your list having license free + win / mac + easy to use
Without license free SVN would potentially have been an option but usefull SVN on mac isn’t free (on windows there is TortoiseSVN + WinMerge)
Given you have a team large enough you require that and you have the funding to setup and maintain an SCM solution (because you either pay a few hundred USD per year or host it yourself on a dedicated server with a large enough connection), the cost for mac svn clients with merging integrated should be no problem though.
As for the nice to haves binary.
anything thats not plaintext is just a binary blob. They are handled as such and will overwrite them accordingly.
If you require something that works more sophisticated, be willing to fork out a few hundred to a few thousand US + potentially dropping OSX (there is always VMWare / parallels).
If you do so, MogWare might be an option to you actually as it is artist oriented and its far less expensive (should you consider $15/month and seat a lot give the perforce website a go) than what you will pay for other commercial SCMs which you are obviously looking for judging by your list.
Because it definitely should be license free, I agree with you, that you have to make compromises on the one or other requirement. But that’s exactly the point - to find out the most suitable free scm for unity projects.
Since I’m the only mac user and have worked with svn without any client for years, I wouldn’t mind continue using the terminal for those operations. The important thing is that especially the artists working with windows and do not have any experiences with scm systems yet, need an easy to use client. And for this svn provides useful opportunities.
The provision and configuration of a svn server itself is not the problem. Well, of course, still depends on connection requirements. What exactly does that mean “large enough”?
In our case, it is not dramatic, that a binary file needs to be locked during the processing by a user. The important question is, which scm handles best with the memory space for binaries. Svn uses the xdelta differencing algorithm. Is this good enough for small and medium-sized projects? Or do other systems use better algorithms?
In summary svn could be the solution. But what about e.g. Bazaar or Mercurial, are there any good reasons for or against it?