backup like this I wish

Here are a few suggestions for improving backup.

A)
The ‘retain backup files’ number scheme may easily result in no historically meaningful backups. For example, suppose you have 10 backups going back 10 days. Also suppose you have ‘backup on close’ checked and ‘retain backup files’ set to 10. Then, today, for whatever reason, over the course of 30 minutes, you do several, let’s say 10, open and close cycles on Scrivener. You just lost all your backups older than 30 minutes. That chapter you mistakenly blew away 2 days ago and only realized it today, it’s gone.

Changes:

  • Save the last so many (today) backups. This is the current control and remains but only limits the backups saved today.
  • Save the last so many daily backups. The limit would be set at 30 by default.

How it works:
At backup time on a new day Scrivener looks for backups with a date 31 days or more in the past and deletes them and it deletes all but one backup for each of the last 30 days. Then it does today’s backup. This means you’ll have 30 days worth of historical backups. There will be gaps in the backups for days in which you didn’t do a backup, like weekends you didn’t write. This is per project.

B)
When I started with Scrivener I, wrongly, assumed that backups were project related. By that I mean I thought they were saved somewhere related to the project and that if I copied a project, thus changing its path and effectively its name, I would have backups specific to each of those, both the original and the copy.

But instead I found that all backups are written to the same directory and that if you have /A/mynovel.scriv and /B/mynovel.scriv projects those 2 projects compete for the ‘retain backup files’ number. So if you work on project A for a few days you may have deleted all of your project B backups.

There’s also nothing on the GUI to indicate that ‘backup location’ setting is ‘global’ to all projects.

Changes:

  • Save backups based on the project path, not just the project name.

How it works:
One way to implement this is to place a meta-data file in the backup location. That file will have code - path pairs. At backup time the project path is looked up in the file and the code is used to tag the project’s backup directory/zip file name.

C)
I’ve experienced several disk crashes over the years. Because of that I now work almost exclusively on external hard disks for “my” work and keep backups on 2 other external disks. I don’t use the C drive for anything of “mine”.

Changes:

  • Option for 2 different backup locations.

How it works:
At backup time Scrivener does 2 backup cycles, one for each location.
This is so your work is both ‘here’ and ‘there’, not just one of those. This supports external hard drives and allows user data to survive a disk crash. Ensure they’re on different disks/devices or it’s of little value. This also applies to manual backups.

Note: Originally posted, in slightly different form, in the Windows Feedback list.

A) There is an option to retain all backup files. See Tools -> Options -> Backup, “Retain backup files.” It’s also a good idea to backup your entire hard disk to removable media on a regular basis, which would preserve all backups in existence as of that date.

B) There are two workarounds for this problem that do not require code changes. The first is to increase the number of backups you keep, up to and including “all files.” The second is to simply change the name of the project when you create a duplicate copy of it.

C) Wouldn’t this be a more appropriate task for a dedicated backup program? Since presumably you have work other than Scrivener projects that you would like to protect in this way?

Thank you for the suggestions. While I can’t speak for the development team, I suspect they will tell you that – particularly under Windows – development of Scrivener’s core features is a higher priority. Customized backup is well handled by a number of dedicated programs.

Katherine