Version control, backups, collaborative development

One thing that software developers are used to is the use of version control software so that many developers can work on the same code base at the same time. This is done by using some kind of repository which developers can check files in and out of.

There are facilities for merging back in changes and even for resolving conflicts should it turn out that 2 people have edited the same file. Most importantly from the SC perspective is that specific versions (e.g. a defined configuration of files at a specific time) can be maintained in order to be rolled back should a particular evolutionary branch not work out. As only differences between versions are stored it is very efficient in storage.

How difficult would it be to merge this approach with Scrivener? A Scrivener project is mostly a directory of text files, the snapshots and binder.scrivproj files appear to be binary so it seems like a new version would be described by any modified text files plus any newer snapshots and the most recent binder file.

It seems to me that using this kind of approach would even give you collaborative development in Scrivener for free (put the repository on a network server). Keith, if you are interested please PM me and we can exchange email addresses. Otherwise I may experiment and report my experience back

Unfortunately there is no way in OS X - especially with RTF - to do the sort of version control you are talking about. That is why “Snapshots” are named as they are, rather than trying to call it “Versions”, which brings to mind the sort of feature you mention. That said, of course, I would be interested to hear about the results of your experimentation. :slight_smile:

I thought that RTF was defined to be 7-bit ascii and certainly the tutorial files look to be straight text. Subversion can deal with binary files (by dint of deciding this version of a file is the same, or not, as the other version) but it’s less efficient in disk space.

I’ll do some experiments with Subversion and report back.

There’s an informative post by Jeremy Douglas on how to make Scrivener work with subversion. See … php?p=8292

The simple fix to make it easier is to stop Scrivener from removing “.svn” directories that subversion creates inside the project to track changes.