Does Git or SVN work better with Unity?

Does anybody have an opinion whether GIT or SVN works better with Unity? From what I gathered Unity's Asset server is the best way to go but we can't really spend the money on that right now. We're using Unity Pro and just put our first real project under SVN, but we're already running into some trouble. Before we expend too much effort I wanted to check and see if maybe GIT would be a better choice than SVN.

Thanks, Geoff

I haven't tried GIT yet with Unity, but the general problems will be the same with every versioning system. (including Asset Server) There is just no intelligent way to merge binary files (assets, scenes etc.). So in the end it comes down to which versioning system you are comfortable with.

SVN kind of sucks, from personal experience, and something like Git or Mercurial is much better. Again, it's entirely personal preference, but check out this article for more info: http://hginit.com/00.html

As for working with Unity, the big problem (besides not being able to merge Binary files) with not having Unity Pro is that the Library directory is crazy.

NOTE - this answer is for historic value only. With Unity you DO NOT, AT ALL, put the Library folder under version control.

There’s all sorts of meta files and stuff that change every time you work in the Unity interface, and it will all be different every time you check in changes. And you need those differences on everyone’s computer, or things will break.

My team's solution is pretty basic: every time you check in changes, make a zip file of the Library, and check that in instead of the Library itself. You just need to remember to re-zip every time you commit, and unzip every time you update. Otherwise, it works like a charm. :)

I’m currently using SVN with my unity projects through Windows’ TortoiseSVN and I actually find that it works exactly as it should. I agree that SVN can get twitchy and easily freakout at times, but tortoiseSVN has the flexibility to accept the kinds of changes that you will have to make in your Unity project without going nuts (though, I am certain I’d have had a very different experience with this if I were still using command line SVN).

If you’ve run into trouble, I’d make sure that you’ve followed this guide, then you should be perfectly set up to get underway: http://docs.unity3d.com/Documentation/Manual/ExternalVersionControlSystemSupport.html

Of course, as has been said, it’s all personal preference, as they both work well and face the same general challenges (merging binary files, etc). I’m only using SVN because I rolled out my own repository server and SVN filled all my needs for that to function. If you like Git more, then it’ll work just as well (except that Git is extremely fast).

It seems that Unity2d can not work properly with SVN or GIT.
The problem of dirty unity3d-зroject structure.
Perhaps the unity3d-authors are not familiar with any version control systems ((

p.s.: asset server almost nothing can((

I know this is a bit late, but have you tried using Git UniTEAM from the Asset Store? It’s an editor extension that lets you manage your Git versioned project in much the same way that the Team Asset Server does…

Git is better and it works.

There is some info on google. The shortest:
http://forum.unity3d.com/threads/141420-Unity-and-Git