CVS for the Actionscripter
I’m sure many of you multimedia developers out there know the phrase “save early, save often”. I learned from my early days working with Director to not only do that, but to save as a new version every time I made a serious change. As a Flash developer, I’ve found that dealing with multiple FLA’s and corresponding AS files can get rather unwieldy. I assure you, there’s a better way!
Browsing through Sourceforge and other open source software sites, I’d always heard the term CVS. At first, I thought it was only a tool for serious programmers, and that it would be as unusable to the non-programmer as most open source software is.
What CVS is is a system that creates a repository for your code, where you commit new versions of your codebase. Each version of a particular file is saved in history, and (ASCII source code) can be retrieved and compared to your latest version.
I was sort of forced into using CVS at my job. CVS was originally conceived to allow many programmers to work on a single codebase without overwriting eachother’s code. I was told to download and install WinCVS. Even with the GUI it was very difficult for me to understand. I frantically started searching for a more intuitive program that would allow me to use CVS without having to learn how to use any new software.
Enter TortoiseCVS. This wonderful program enhances your Windows Explorer with icon overlays so you can see the status of your files, and adds menus to your context menu so that you can commit files, update, view revision history, and many other CVS-related tasks.
Tortoise CVS, combined with an application like Winmerge, will give you powerful tools to organize and track your development process. With Winmerge, you can compare your AS files line by line and merge the differences when necessary.
Even if you are a single Flash developer, these tools can help you to stay organized and to “roll back” changes when necessary. I know many a time I’ve painted myself into a corner and couldn’t find a problem for hours, or gotten lost in a mess of old AS and FLA files, or just ended up with a certain combination of actionscript and vectors that made Flash go wiggy. With CVS, you’ll only ever see the latest source in your working directory — you can keep things neat and tidy.
If you’re working alone, it’s so simple to use once you’ve created your initial repository. Just add the files you want to track, commit them, and then continue to commit each time you get some piece of your code working. If you ever need to go back, you can diff against yor working version, and merge in your old code. You can even tag your entire directory to take a snapshot of beta versions of your code, or branch your codebase if you want to work on two versions at the same time.
I hope you’ll learn to love TortoiseCVS as much as I do… enjoy!
Recently Steamed:
- 07/23/2008: Mochi Media Site Relaunch
- 07/22/2008: Amazon S3 Downtime Visualized
- 07/21/2008: NPR Launches Open API, offers Widgets



Hi there,
I’ve never been able to use CVS. How do you set up a server?
Thanks and regards.
Comment by Daniel Aguilar — 1/12/2005 @ 7:39 am
One thing that bothers me about CVS with FLash is that you can’t tell if someone is working on the same file as you. You don’t know until you commit the file to CVS. Has anyone found a way of dealing with this?
Comment by matt — 1/12/2005 @ 9:25 am
If you want to set up a repository to work alone on, read this FAQ entry on TortoiseCVS, it’s real simple. If you want to set up a server (I’ve never had to do this), the gents at Tortoise recommend CVSNT, but I imagine you can use the original CVS server under Windows or under Cygwin.
Comment by Geoff — 1/12/2005 @ 10:14 am
As far as AS files, you don’t need to worry if someone is working on the same file as you. Simply do an update to ge the latest copy from the server before you start working, and then commit when you are done. If someone has committed since your last update, CVS will alert you of a conflict. You can set it up so both versions open up in Winmerge, and you can manually merge the documents. Keep in mind, CVS can automatically merge your files if you both were not working on the same lines of code. If you are organized about delegating tasks, you both won’t be working on the same classes or functions.
Comment by Geoff — 1/12/2005 @ 10:18 am
Wow, cool. Thanks a lot, I never thought it was so easy.
Cheers
I’m up’n'running!
Comment by Daniel Aguilar — 1/12/2005 @ 12:02 pm
Hi! this may help somebody to organize delegating tasks in working group.
http://www.keldysh.ru/dpt_19/growE.htm
Comment by zyxman — 3/9/2005 @ 8:08 pm
Don’t use CVS, it’s outdated and obsoleted by SVN.
I’m going to make an article in my blog soon, I’ve already noted several days ago that it’s coming.
If you are really hot on the subject, visit these threads:
http://forums.indiegamer.com/showthread.php?t=2787
http://forums.indiegamer.com/showthread.php?t=2782
It really has everything up to the point, but I’m going to make a step-by-step tutorial for people who are completely not familiar with it.
Comment by Anatoly Ropotov — 4/11/2005 @ 6:25 pm
You might also want to look at SVN!
> One thing that bothers me about CVS with FLash is that you can’t tell if someone
> is working on the same file as you.
> You don’t know until you commit the file to CVS. Has anyone found a way of dealing with this?
I am not sure about CVS but SVN have the locking facility.
Comment by Brajeshwar — 2/22/2006 @ 2:18 am
Hi all,
Just thought I’d add my 5cent. I’ve used both CVS and SubVersion lately and I’d suggest anyone curious about this should research both. CVS is pretty much a standard in many communities, but I prefer SubVersion myself. It was written to fix many of the problems that CVS struggles with. I posted about the pro’s and cons recently: http://www.flashgamer.com/2006/01/using_cvssubversion_with_flash.html
Also: if you just want to get going and test what works best, check out cvsdude.org. They offer free test-accounts for both CVS and SubVersion.
J
Comment by Jensa — 2/22/2006 @ 4:30 am
Yes, Tortoise CVS it’s pretty easy and powerful.
But is a pain for the designers.
best
Comment by luchyx — 2/22/2006 @ 6:49 am
Brajeshwar,
As far as AS files, there’s no need to worry about whether or not someone is working on the same file as you. That’s what’s great about CVS. If someone is working on the same file as you, and they commit before you, CVS will alert you of the commit, and allow you to merge changes with the latest file in the repository. If there are no conflicts, (i.e. the person was editing lines 50-100, and you were edting lines 200-250), then the merge will be automatic. If there are conflicts, then CVS will launch your DIFF app and allow you to see the differences in eachothers’ files, then merge manually.
BTW, yes, SVN is better, but harder to set up for most Flashers.
Comment by geoff — 2/22/2006 @ 10:38 am