Hi everyone,
We’re running a sort of shake-down of Unity at the moment to get ready for our first Unity-based project for a client, by making a small racing game in 3-4 days. We’re trying to incorporate as many settings, methods and production pipeline steps as we can into the process, to find an optimal workflow for us, and to establish workarounds for any potential problems that we find.
As a four-person team we’re using the Asset Server, which seems to be working mostly fine. One issue that has arised today, however is conflict on .unity scene files.
Specifically, we have a LevelScreen.unity file, which contains the main level. This is of course where several of us are doing the bulk of our work, and it often happens that at least two of us are working on it at the same time, albeit at different things (a checkpoint prefab and the camera settings, as the case were this last time, for example).
When one of the users commits his changes, this includes the .unity file, and when the others (who have also worked in the same scene) then update from the server, a conflict arises. In the conflict resolution dialog, of course, there is no option to merge the differences between the files. The only options are to discard either set of changes; your own, or the ones commited to the server. So, you’re bound to loose somebody’s changes, at least when the last user commits his changes (if he decided to ignore all changes from the server).
My question, then, is how do people either:
- ensure that only one person work on each .unity scene file at any given time
or - merge differences and resolve conflicts in .unity files?
Number 1 is difficult, given that there is no “lock” function on the Asset Server, that I have found (and no “merge” of the result when the lock is lifted, and users update).
Number 2 seems equally difficult to implement, given that all the merging is done behind the scenes in Unity, and this, by design, only allows to “select Merge for text assets like scripts” (ref. Asset Server Guide).
So, any thoughts or comments from the community on this?
Thanks!