Posted by: badanov
Much of the developing and editing of scripts used in my web sites used to get done live on the site, as did testing. So, if I wanted to add an enhancement of a feature, it was a real risk to implement the feature on the live site then test the feature.
This was a fine system with all the blog scripts where there is only one user. If I screw up, then that's just on me. I may look silly then I should have been more careful.
But on a site such as the wargame club it is not an acceptable means of developing because of the variety of users which log in, which may suffer from a bug I missed. Not too long ago, one user complained about not being able to log in, so after telling him repeatedly how to do it, I went to the site on the same platform ( IT 6 ) and found that IE obfuscated a submit button.
It pisses off and frustrates users when something gets deployed to the internet without being fully tested.
So enter the internal development server, which is a FreeBSD 7.2 headless box that I use for developing. The network I setup also has a backup server, a headless box running FreeBSD 5.4 which downloads everything from the two live BSD servers I rent. From that platform I have easy access to everything I need to update a script on a website.
The system is simple. ( the way I like things ) I can write and test a script on the development server, then copy the script to the live server. I can then time it where later I can wipe out everything from the development server and download a fresh set of scripts, including the recently changes/written scripts.
Especially with the wargame club. I have the backup server backing up the development server directory trees for the times I am working on a project that lasts a few days.
But now I am entering into a long term project which could last a couple of months. I still need the system I have now to regularly hunt and kill bugs on the live site, but I can't afford to use that system for a long term project.
So, a second internal website is set up which will enable me to download a fresh set of scripts and write and test all I want without worrying about if I will move those script to the live site.
The only problem I can see is with the complexity of editing and changing a short term script and then trying to move the changes to the long term project, all without complicating the development project.
CVS is an option, except that this system was developed for code which is then compiled, such as the c family of programming languages. You can't track bug in a compiled program because of the encoding inherent in c programming.
If I come up with a solution, I will leave a post about it along with the code.