Well, I have a non-best practice success story, if that's any help.
I have a very unorthodox setup, but it works really well considering. I
have a home office linux server running off a cable modem. I run all the
standard linux goodies off it including Subversion. Pretty much all
users are on Windows and run TortoiseSVN. I make repositories by hand on
the command line. Holding all assets in the repository takes up a lot of
space. Using the repository for video work is not feasible. We worked on
a multimedia cd-rom, and the entire repository for the 300MB of work
files is approx 1.8GB. Most repositories aren't that big. I also
*blushes* have a single classpath for all clients. This is because when
I first started using Subversion it was for my own personal use. Now we
can't see how we ever worked without it. I haven't used Trac, nor do we
have any post-commit hooks for mail or anything.
Based on my non-best practices setup, here's what a best practices setup
would be like:
Crunching assets can take a while. Get a dual cpu setup to crunch those
big flas.
Make sure you have a good terabyte of space, its a disk hog, too.
Use post-commit hooks for email, and use detailed log messages to cut
down on communication overhead.
Write some shell scripts (or whatever you like) to handle the creation
of repositories, users, and hooks. This may sound hackish, but the
reason I put this as a best practice is because I don't think any
pre-packaged solution can come close to a good shell script here.
Based on the best practice above, naturally you should be running all
this on a Linux/BSD box.
You really should have someone as a designated subversion admin who
knows the ins and outs. You absolutely need someone there who is
available and can provide training wheels for new subversion users. It
ain't going to be easy.
Have a classpath folder for each client, along with a separate
repository for your core classes. Use inheritance heavily. Example: You
have a Menu class such as:
com.company.gui.Menu
You customize this menu for a client:
clientMenu extends com.company.gui.Menu
But you also use com.company.gui.Menu for a bunch of other projects. So
have a 'main' classpath repository that contains all your core classes,
and use inheritance for your individual client needs by having a special
classpath within the project's repository. Yes, this requires two
updates, but it is a better solution.
I think the main issue with version control in a web/flash environment
is workflow. Getting project managers and designers to all comprehend
the intricacies of version control takes finesse. I just tell project
managers to 'right click and update'. I tell designers its like ftp,
only cooler. And programmers just get it.
I hope you find this useful, but more importantly, I hope it creates
some discussion. I don't pretend to know a lot about version control,
and perhaps there are others out there who can give me some good schoolins.
Robert Sandie wrote:
On my fourth large flash project and have yet to come up with a sound
CVS system/workflow for Flash. Does anyone have any best practice
stories regarding version control and integration into web development
projects? Would love to hear.
Robert Sandie
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
--
_________________________________________
< __ __ ____ >
< | | \/ ___\ Chris Hill >
< | | / /_/ > [EMAIL PROTECTED] >
< |____/\___ / http://ubergeek.tv >
< /_____/ The Smell of Geek! >
<----------------------------------------->
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders