Q: help on version-control for legacy code I'm looking for some kind of backup/version-control method for a legacy system:


*

*Systems are developed in a version of BASIC.  It's an interpreted version.  Programs are saved in some pseudo-code; not pure text.

*All production programs are stored in the same folder tree, divided into folders depending on the category.

*No subversion strategy, apart from storing the previous version of the program being modified into a subfolder named old_versions.  There is one old_versions subfolder within every category folder. Example: /programs/accounts_payable/old_versions/

*Programs are modified on the fly, in the production environment.

*System run on a Solaris server


I would like some method of real-time backup of, every program modified, stored in a separate location.  Nothing fancy.  It doesn't need to do rollbacks or change-comparisons.  It just needs to SAVE THE MOST RECENT VERSION OF THE PROGRAM.
Thanks.
PS:  Yes, I'm really angry and desperate.

A: Without changing your development process, perhaps one way would be to use rsync or similar in a shell script to take snapshots every xx minutes, and send them to another location.
I think the best solution would be to migrate to a VCS, personally I'd recommend git or svn, and stop editing code in production. You can always svn export to get a clean tree if needed.

A: IBM Tivoli might be something for you.   
I have purchased it in the past for about 50$. It monitors changes to files/folders you have setup and writes a copy (or delta, I don't know) to a location you specify.
I wish I could give you a link to the program but after fighting 5 minutes with the IBM website (again) I gave up in frustration. Their products are solid, their website or methods to purchase them are, well, not.

A: If software is being modified on the fly in the production environment I'd humbly suggest that real-time backups are not the solution to your woes. It potentially solves a faulty outcome while completely ignoring the root cause.

A: You could take a look at rsnapshot; see http://www.rsnapshot.org/. It can make multiple snapshots of a directory tree, using hard-linked files to save space where a file hasn't changed. 
