The software industry uses a concept called http://en.wikipedia.org/wiki/Revision_control to do this.
Last year there was a discussion on the forums about how to apply it to scripting, but I did not follow it that close.
I, myself, don't do much more than, on occasion, creating a copy of a script and append the name with "OK" or "Backup".
What I do most often (every few hours to every few days), for backup purposes, is making a copy of the wip esp in the Data folder and, also, copying the original and the copy to a backup folder in a different drive.