As you all know, I’ve been developing shit in a proper development enviorment for awhile (read as: not being a cheap hack like I normally am). Some of the stuff I’m doing is really handy, so I thought I’d muse about it and how it may be applicable to Cybitures.

First of all, CVS. Up until now, I haven’t ever touched source control, ever. CVS makes things so much easier. It allows multiple developers to work on the same source tree without stepping on each other’s toes.

It works like this. It keeps a copy of the current, bleeding-edge source base, and it keeps copies of every revision done. You can roll back changes done to a file.

The other excellent feature is that it allows you to download the current code base and work on your own local copy. When you finish playing with a file, you can commit that file back to the centeral repository. If anyone else has committed the same file, CVS will look at the differences between the two files. If you worked on a different section of the file than the last person, it will merge the two together. If you changed what they changed, it will notify you so that you may resolve the problem yourself.

For example, say I was working on functions.php, a file with all of our functions. If Tigress worked on the PrintFoo function, and I worked on the DeleteBar function, it would be able to just merge everything together and have one big happy file. If I worked on PrintFoo between the time I last updated my local copy of the code and when Tigress updated it on the CVS server, it would barf and tell me to fix it myself.

The handiest way to use CVS would be to set up a folder that you can access from the web and upload to (via ftp, scp, whatever). This will serve as your development copy of your web application. You play with the files as you normally would, then when you get whatever you’re working on debugged and ready to go (like you add X feature and get it to work), you commit your change (you wouldn’t commit as you were developing, because then you’d have to give it log messages for every little freaking change, and I bet you don’t want to commit five hundred times because of stupid shit like misspelling variables), and you are happy. You can roll back to the old version if absolutely nessecary.

Then you have your production copy of your web application. This is what all of your users play with, and it always works perfectly, because you test everything before putting it into production. It’s extremely easy to get your nice, tested development version and your production version sync’d up, just check out a copy of the source base from CVS. Boom, instant, easy updates with rollback.

I set up CVS on my local machine just to get some experience setting it up. I hope that Tigress would be interested in using it for Cybit.