Most version control systems (VCS) are designed for text. They usually have very powerful and convenient features for comparing (diff
) and merging source code, and some tools can even automatically merge changes (and do a decent job of guessing how changes should be merged and at what point the developer should be solicited to do a manual merge).
It would be great to have a better support for diff
and merging of binary files from the respective applications which use those files. Microsoft Word, for instance, makes it possible to compare two documents, and while it's far from being a convenient merging tool, it's still better than nothing and saved me hours on multiple occasions. Unfortunately, the merging feature is usually either overseen in software products, or difficult to implement (how do you visualize a diff
of a 3D scene?)
When it comes to binary files, you get little help from VCS. Not only are they unable to store successive changes efficiently, but they can't help you merge the changes either.
Two years ago, I asked a very similar question concerning version control use in video editing software. I believe that answers which were given to my question partially apply here as well, the only (but important) difference being that my question concerned large files, while in your case, binary files are probably relatively small.
The approach you found, that is “taking turns working on the same objects”, is the good one. If you can't merge, don't work in parallel on the same stuff. If you work in the same office, it could be easy to do. If not, most version control systems (including the one you use; it's also discussed here in a context of BitBucket) support locking, which consists for the user of a VCS to tell, through the system, that he's working on a given file right now; other users can load the latest version of the file, but they are not expected to change it.