This usage scenario describes how I do group writing with Scrivener.
I now use Subversion (an open source version control system) and svk (an alternate set of client tools to the normal svn tools for subversion) to manage my Scrivener documents. All this trouble gains me two things:
-
Collaboration: I can now collaboratively edit large Scrivener documents with multiple collaborating authors. As the changes come in, I run something like Word’s “Merge Documents” to resolve the additions, deletions, etc.
-
Version Control: I now have a true version-control history, and can selectively roll back, change, or restore individual parts in a more fine-grained way than snapshots currently allow.
Background
At first, the idea of sticking Scrivener documents in a source control system like CVS or Subversion seemed obvious and I assumed it would be easy. However there is a major headache - the way that Scrivener stores text automatically deletes the version control information (hidden .cvs or .svn folders) from the package every time a document is changed. I experimented with several solutions (search the forum Technical Support threads for “subversion”) but they were awkward, labor intensive, and you had to be careful or your document would become “broken.”
One solution it turns out is to use svk - an alternate set of client tools for checking out working copies that hide their version information in a safe place (~/.svk, rather than ~/Documents/MyNovel.scriv/.svn). There are some drawbacks to svk, the biggest being that there are currently no pretty OS X GUI tools to use it - you have to type on the Terminal command line. However, it works great.
If anyone is interested in replicating this setup, I’ll be happy to follow up with more detailed instructions. Just understand that following this workflow process requires that you have no fear of the command line: you install the open source subversion and svk client tools into your system, add a Scrivener document into a subversion repository (either locally or on a remote server) and then use the command line to check out a ‘working copy’ of the document using svk. Many people can make edits to this document, and they can be checked back in, or ‘committed’ using svk, merging changes at that time.
Example: Editing by Email
Each collaborators can install svk on their own system if they want to quickly sync the latest changes - or they can simply follow a slower schedule of emailing their revised Scrivener documents back and forth to the primary author, who manages the merging and emailing out new merged documents. This is an especially nice option for working with editors etc. Say I have a document:
~/novel.scriv
I’ve just finished revising it, and I save my working copy using svk. It is revision 10 (like a snapshot). I decide I want send some copies out for comments, so I use svk to ‘check out’ a couple versions of the same document for my co-author Frank and our editor Shirley.
~/frank/novel.scriv
~/shirl/novel.scriv
I then email those off and get back to writing. A few days later, I’m already at revision 15, I get an edited document back from Shirley in an email - she’s edited a dozen documents and added several with comments. I copy her .scriv file into the /shirl/ directory and then use svk to merge her changes. As it tries to figure out how to combine them, svk knows that Shirley was working from revision 10, and it knows that I’m now on 15. When done merging, svk creates revision 16, including all of Shirley’s suggestions. I go ahead and use svk to remove /shirl/ as she isn’t working on it anymore, and get back to work. Two weeks later, when Frank’s additions arrive by email, I’m at revision 19 - but svk remembers that Frank was responding to version 10, and it can help me merge our changes into revision 20. After seeing it, Frank has some questions about Shirley’s input - no problem, I can export a copy of revision 16 to show him exactly how it looked Shirley’s feedback was added into the document, etc…
More Info
SVK homepage: svk.bestpractical.com/view/HomePage
The SVK book: svkbook.elixus.org/
SVK and compatible Subversion binaries for OS X: homepage.mac.com/hiirem/svkbuilds.html