Not using versioning on your configuration files and editing them with Vim? Use Vim’s backup option to automatically keep a copy of past versions:
To put in your ~/.vimrc
:
"Turn on backup option
set backup
"Where to store backups
set backupdir=~/.vim/backup//
"Make backup before overwriting the current buffer
set writebackup
"Overwrite the original backup file
set backupcopy=yes
"Meaningful backup name, ex: filename@2015-04-05.14:59
au BufWritePre * let &bex = '@' . strftime("%F.%H:%M")
Try using seconds in your filename. Simply add "%S" at the end of your vimscript, and the filename will be virtually guaranteed to be unique. Maybe it is even possible to add microseconds for 100% uniqueness.