Cross Platform Version Control Systems?
ignipotentis asks: "I've been given the task to find a multi-platform (windows, macintosh, linux) version control system. Currently, CVS is being used, and it isn't working quite as we expected it to. We are creating large Flash files and CVS is having problems keeping everything straight. It apparently doesn't like the large file sizes. I was wondering what other decent version control software is available that doesn't require a huge sum of money?"
I like and use perforce. It's a great system, and there are mac clients (both OS X and otherwise) although those come with some extra restrictions (on file names and the like, due to mac platform issues.)
However, it's not cheap. It's about US$600-700 per user to start and goes down as you add more users. It's worth it, but if you can't afford it...
Subversion promises to be good, but it isn't there yet and I don't know if their client runs on windows or mac (or if there are any plans to port).
There's a host of others, but I'm not familiar with them and thus won't comment.
Still, a binary file is a binary file; so why not keep compressed versions of your files under source control? If you have something like a makefile, have it generate a (read only!) copy of the uncompressed file as necessary. Provide an editing script that (1) uncompresses, (2) launches the editor of your choice, (3) detects when the uncompressed version hasn't been updated (and bails out of the previous steps), (4) recompresses, and (5) either removes or touches the uncompressed version (I haven't thought this through too carefully).
You'll cvs rm the uncompressed version. The old versions will still live in the repository if you need them. (You'll also get some immediate gain from using smaller
CVS is remarkably good for cross platform source control for Ascii files. I used it for four years in a Solaris / HP / Windows environment; good stuff.
And in case you didn't look:
http://www.google.com/search?hl=en&q=cvs+large+bi
http://www.google.com/groups?q=cvs+large+binary+f
Good luck!
Stupid job ads, weird spam, occasional insight at
What you are looking for is something to just keep the different versions straight. A few shell scripts (Tcl/Tk works on Mac/PC/Unix) and an SQL database (MySQL also works on Mac/PC/Unix) are all that are required. Ok, a scripting language, an SQL database, and a central file store.
You add new files via a checkin script. The checkin script creates a simple naming convention. (I start at [thefilename].zero and work up.)
The [pick your]SQL database gives you a little extra information than something file based. For instance, say you yank a file, but don't want to extinguish it. You simply mark it as deprecated in your tables. Say you need a certain version of each file for a demo. You link them together into a "Release".
Again, this approach is primarily for binary data where you don't care about the differences between files, but you do care about keeping distinct versions.
Is the implementation involved: yes, but only slightly more than trying to adapt off-the-shelf tools.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming