- Home /
Unity and Source Control (without Unity Pro)
I fully understand that versioning is for the full version only and Unity wants to earn money.
But before we get rich with our game we need a cheap solution. We tried SVN, but run into trouble. Unity seems to mix up things in the asset database.
I tried this guide: http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html
But this seems to be out of date. In Unity PC 2.61 and Unity iPhone 1.5 there is no Edit->Project Settings->Editor.
Is there a way to work as a team in the free version?
Do you have Unity Pro? As far as I remember SVN support is a Pro feature.
Just a note for new readers: This is not true anymore. With Unity3D 3.5, .meta support is available in Unity3D free. It can be enabled in Edit > Project Settings > Editor, change version control mode to "$$anonymous$$eta Files".
With this change, you can import the whole Unity3D folder into SVN, excluding "Library" and "Temp" folder. On checkout unity will correctly rebuild the Library from the .meta files
Answer by Ricardo · Mar 01, 2010 at 10:25 PM
Not trivially, no. You may want to check out this post on version control workflow. You will probably need to end up writing your own serialization/deserialization code, or sending around a bunch of unity packages and have one person do the integration.
Updated: you may want to review the UnityTextScene project.
Answer by manavkataria · Mar 09, 2012 at 02:11 AM
Updated for Unity3.5:
All Unity versions (including Free) now support version control.
Steps:
Goto Edit -> Project Settings -> Editor and enable External Version Control support by selecting Metafiles in the dropdown for Version Control.
Then checkin the Assets and ProjectSettings to your SVN but ignore the Library Directory.
Quit Unity and Delete the Library directory.
CheckOut unity from SVN server. Press Option/Alt (recreates Library) and open Unity.
Hope this helps!
Source: http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html
Thanks for repeating what I put in the comment above /irony
You don't have to delete the Library/Temp directories, just marking them as ignored is enough.
Oops, sorry Tseng! I missed that apparently.
Yes, what you said about ignoring Library directory does makes sense. However, deleting and regenerating Library acts as a proof of concept of library regeneration that new collaborators who checkout the project would need.
Given you've already mentioned about Unity3.5 here, does it make sense to delete my above answer? I am new and not used to the protocol.
You could at least delete the double post, you posted the same answer twice
Done/Deleted. And mighty thanks! I had no idea I had a double post. I recently had a lousy net connection day and would have hit a refresh after a failed posting.
Answer by qJake · Mar 24, 2010 at 03:34 AM
A quick fix for this is to use Dropbox. It's not without its flaws, but it works for the most part (and supports things like revision control, deleted file recovery, and file change logs), plus, it's free (you can't beat that!). I've synced about 3 or 4 different Unity games of various shapes and sizes over Dropbox with no major problems.
What's your process for using Dropbox with Unity? If it's worked for you, I'd be interested to hear about it.
There's no "process", you just drop your Unity project folder into it, and you can sync it. You can even share the folder with friends. The only thing I've found wrong are a few $$anonymous$$or hiccups when two people are editing the same scene at the same time, but Dropbox saves file revisions, so if anything goes wrong, you can just revert to a previously working revision. It's not a perfect solution by any means, but it's free, and it's very easy to use.
This is not true anymore. With Unity3D 3.5, .meta support is available in Unity3D free. It can be enabled in Edit > Project Settings > Editor, change version control mode to "$$anonymous$$eta Files".
With this change, you can import the whole Unity3D folder into SVN, excluding "Library" and "Temp" folder. On checkout unity will correctly rebuild the Library from the .meta files
Answer by VoidQC · Nov 03, 2010 at 06:23 PM
Updated: With the new Unity 3
We've been working with Unity in our small team here for a few months. The best way we found to work simultaneously is to compress the library folder into a .Zip file, and to commit it along with the Assets folder. On the local machine, you simply extract the library and open Unity. So you any modification to the code is controlled. You only need to create a new Library.zip once in a while, to integrate the settings made using the inspector. For example, if someone attach his new script to an object in a scene, if he does not commit a new library, it will still work but the script won't stay attached on your teammate's machines. So if that script is important for everybody's work, you just need to compress your library folder and replace the old one.
The worst thing that can happen is to obtain a conflict with the library.zip, but it is pretty easy to get around it by having someone integrate the modifications.
Note: We are using SVN subversion and Unity 3.
Answer by yoyo · Jan 04, 2011 at 01:39 AM
This question is pretty much the same as http://answers.unity3d.com/questions/11075/how-does-unity-free-source-control-go-wrong, with all the same answers.
Couple things not already mentioned:
- being able to find missing script components is useful, since if someone moves or renames a script, it can break the scene. See this script or this package.
- saving out tweaked values of component properties is handy for quick movement of data from one person to another, available from the dump-to-file feature of this package.