Backing up Files
When working with several thousand lines of code over a period of months it becomes important to consider file backup and recoverability, and you should organise your work so that the inevitable mistakes can easily be undone.
Modern computer systems are remarkably reliable. Those administered by the University or Department (e.g.MCS) will have their file systems carefully and regularly backed up as protection against any hardware failure.
The Department observes that maybe one or two of its students suffer a serious computer failure each year. So while this is not very likely to hit you, you need to be protected in case it does. You should institute a regular schedule for backing up project files, probably using all of USB memory sticks, the MCS and cloud services. Links to Computing Service information on making backups can be seen at http://www.ucs.cam.ac.uk/arch/intro.
In practice the biggest danger to your files is not hardware failure but clumsy editing or confusion about file-names; when tired it is painfully easy to delete an important file instead of the temporary one you intended to discard. There are also times when you may discover that a full week’s work of heavy adjustment to your code was in fact misguided and that the best thing to do would be to restore your files to an earlier state. You should therefore arrange to make regular safe copies of your files, and preserve several generations of them. Using revision control, such as git or subversion is strongly recommended. The situation when this becomes most critical is when you are working under most pressure, which is of course when making backups feels most like a piece of bureaucracy that wastes your time!