Some user experience with SubVersion...

We've used Subversion on several feature films (Free Jimmy, Kurt Turns Evil
and another one currently in production). Integration with Maya is done
through Mel scripts that pass system commands to the SVN client, and
commiting is integrated with the save and save as commands, so that every
time the user saves a version controlled file, a promptDialog pops up,
asking if he or she wants to commit.

Our SubVersion setup does not use locking. If you have two artists working
on the same file at the same time, you have a production management problem,
not an SVN problem. If several people do work on the same asset, you most
definitively want to have the revision history for both of them, and then
you either let the two artists in question fight about whose version wins,
or merge the differing work manually in Maya.

We have a Python script running all the time that tracks what files are open
on every machine in the building, and warns the second person attempting to
open a file, or an asset (if someone is working on the model file, you get a
warning when opening the UV file, etc). I think this is a better solution,
as it also covers files that are not SubVersioned (you dont want to have
people save over those either), and files don't get stuck when Maya crashes.

We do not use merging either. I don't see how helpful that could be when
dealing with files that may contain hundreds of thousands of lines of text.

The Subversion log is stored in a database, so it can be integrated in
production management web pages etc without having to make slow SVN log
requests all the time.

There are several features I want to add to our current setup. Among them...
Better integration with our database tracking system. We have strict
conventions for what files are associated with each asset, animation scene
etc. Whenever an artist creates a file that is part of the asset workflow,
that is logged in the database, and should also be automatically added and
commited to SubVersion.

A really user friendly GUI for performing the most essential SVN operations
(not even TortoiseSVN is *that *user friendly from an artist's point of
view). This would automate most processes, like adding, renaming, moving
files; reverting/saving out revisions, etc.

Automatic updating of assets when working with local checkouts. This could
possibly be running in a thread at regular intervals, and then when the
artist opens a file, an additional script makes sure the file and all its
references are up to date.

Various working copy repair tools.
SubVersion is way to buggy when the working copy resides on a network share.
You'll commit a file and everything is dandy, but somehow SubVersion thinks
that the commit wasn't made, so it tries to update the working copy, making
a total mess as it tries to merge the commit with the last save, or it just
flat out refuses to commit. Usually, the workaround is to rename the latest
noncommited saved file, update the folder so that Subversion puts the file
back, delete that file and then rename the correct saved file back again and
commit that.

I agree that the way to go is to create something more general that can then
be hooked up with Maya, Softimage, Fusion, Nuke etc through Python, and in
some way to Adobe software, 3ds max, MS Word etc

Here's how its done in Perforce:
http://www.perforce.com/perforce/products/plugins-p4gt.html

The best would definitively be to make it version control, os and database
agnostic, so one can use any combination one would like of Windows, Linux,
SubVersion, CVS, Perforce, MySQL, SQLServer and so on.

Jo Jurgens
Senior TD
Qvisten Animation
Oslo, Norway

--~--~---------~--~----~------------~-------~--~----~
Yours,
Maya-Python Club Team.
-~----------~----~----~----~------~----~------~--~---

Reply via email to