Supporting all possible back-ends means you would generalize the version control system API to support any possible one. This also means you have to put additional work in writing the middleware, and possibly stick to the smallest feature commonality between all the actual back-ends you want to use.

To my point of view, dedicating to one backend will not only get you started faster, choosing svn for that is probably not even a bad thing as it is working wonderfully in general and with maya.

A compromise would be to subclass the pysvn Client class providing your own svn-style interface ( possibly improving the pysvn client ), which would give you the option to use it as an adapter to another version control backend later on.

To nicely use svn within maya, you basically need the following ( keeping maya on multiple os's in mind ):
  • setup svn repository such that all resource files ( .ma, textures, caches, possibly everything ) requires a lock
  • Assure scene are truly uptodate when maya opens them ( using Scene Messages/Callbacks )
  • Possibly support two modes of operation:
    1. All local
      • People are working fully decentralized ( ok, they have the svn repo on some server ) and need an up-to-date local copy of their files on local disk.
      • Update scene files and all references/resources upon scene open ( requiring you to hook into maya a bit using callbacks )
    2. Partially Local, All on Network
      • People working together in one intranet usually prefer to update only the file they are currently working on ( i.e. the ma or mb file itself ) and want all resources to  be pulled from the network server
      • Setup an svn hook to keep a server side checkout of your data uptodate at all times
I use approach no. 2 as updating files is costly ( even though the actual process takes less then a second, its a delay people feel ).
To be truly general though, you would need to support both ways, requiring you to have some sort of config system to set you up accordingly ( .ini files ? .xml ? ).

The similarities between 1 and 2 are mainly that at least one file needs to be updated before the scene actually opens ( the scene itself ). In 1. you additionally parse all dependencies ( recursively, possibly slow if not cached ) and update these dependencies as well.

Here you see that approach one gets complex and time consuming, but would need to be supported if the hobbyist's requirements should be met, allowing collaboration due to the svn server.

Zac Shenker wrote:
Ideally what I would like to produce is a tight integration of an asset management solution into the Maya interface.

As you suggested it would probably be worthwhile to develop the asset management side in a form that is independent of Maya and then write a Maya plugin that makes use of the asset management code.

I am now considering developing the asset management side to support more than just SVN, at this stage looking at CVS, SVN, git but the system design would allow for integration of any version control system that one wants to write a module for.

So far my asset management experience includes using CVS & SVN on code projects and trying to use SVN on Maya projects.

Zac

On Tue, Dec 30, 2008 at 4:00 AM, Sebastian Thiel <[email protected]> wrote:
This whole asset management part sounds like a general pipeline approach, with svn as data storage and perhaps database ( ->properties ).

Doing that would properly would make many people, including myself, quite happy as this is one major backbone of any pipeline.

Not being too familiar with Maya is probably won't be too much of a problem as you can boil the system down to actually know about maya in the end, by plugging it into your framework.

Thus whenever one says asset management, I do not see maya in the first place, but files and how they are organized. This is useful for many other applications as well, that could play together with your asset management system.

Perhaps I am over-generalizing making things more complicated than they actually are, and its absolutely fine to start 'sane' and focus on one application at first to gain first experiences with asset management.

Lets see how it goes for you - in my head it looks like a large project requiring a good foundation.


Zac Shenker wrote:
At this stage the main focus is to provide a solution for the end users, but in saying that where possible I am building Python Classes that provide alot of useful functionality so it certainly could be useful for developers as well.

Personally I have quite alot of experience with Python and SVN but am new to programming for Maya.

I would like to ultimately include features that improve the pipeline and workflow processes, such as:
Going through the Maya scene files and discover file textures that are no longer being used.
Provide Version Control over all assests in the project
Easy to use management of revisions and file locks
Easy to use support for branching.
Possibly some basic support for automated merging and conflict resolution.

Regards,
Zac

On Mon, Dec 29, 2008 at 9:33 PM, Sebastian Thiel <[email protected]> wrote:
Who will be your target audience ? Will it be programmers that want to use your integration in their environments,  or will it be users that just need nice user interfaces ?

Can you target both ?

>From my perspective,  pysvn already did the job for me. It does not come with any user interfaces, but for pipeline work, these can be very very simple.

Something I had to improve though is the pysvn client to be a little easier to use when trying to check-out or update files in a deep directory structure which does not yet exist locally. If your project, in addition to that, would provide a nice modular user interface, it could workout well.


Hradec wrote:
Sounds really intersting man... I have being thinking about the potential of using svn in maya for a sort of asset management system for quite some time, which is a concept that your project could be used for I think...

I would be really interested in discuss more about the subject, and maybe even contribute to your project...

congrats for the effort and initiative...

-H


On Mon, Dec 29, 2008 at 1:01 AM, Zac Shenker <[email protected]> wrote:
Hi Farsheed,

Thanks for the comments. This project is still very much a work in progress, it still has a number of hardcoded variables and is missing a reasonable amount of the interface integration.

If there is any one out there interested in this project I would be happy to discuss design and goals of the project a bit further before coding much further.

Regards,
Zac


On Mon, Dec 29, 2008 at 5:16 AM, Farsheed Ashouri <[email protected]> wrote:
Nice work, Thank you.
Sincerely,
Farsheed.























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

Reply via email to