Compare Documents, Conflicts and Versions

Given we now have the superb iOS version of Scrivener I find myself jumping between devices frequently, which has thrown up a few headaches with synchronisation. Most of the time it works perfectly… if I remember to upload changes from iOS then download them on my MacBook (and visa versa). But I’m easily distracted. Sometimes I forget. Today that resulted in a conflicted scene (in the manuscript, and this writer!). Which version was ‘right’. Well, both. So I had to paw through the scene with the two documents side by side which felt… archaic.

In modern development tools document (code) comparison is super straight forward. Scrivener needs this. I want to be able to hold two documents open and Scrivener highlight the changes between the two—or some other highlighting mechanism in an individual document. I can only imagine these conflicts becoming more irritating as more and more writers find themselves drawn to using iOS Scrivener, and anything to ease the pain of resolving these conflicts would be really welcome :slight_smile:

Ultimately, Word-like versioning would be awesome too… but that’s another story (for another story?).

Screen Shot 2016-08-16 at 12.58.17.png

Have a look at Snapshots. They do exactly what you want (on the Mac, not available on iOS). There are video tutorials, a section of the Interactive Tutorial (I believe), and of course, the manual accessed from the Help menu.

Indeed, snapshots can do exactly what you want. So, supposing you have two versions of the document thanks to conflicts, A and B:

  1. Take a snapshot of document A.

  2. Copy all of the text from document B, select all of the text in document A and replace it with the text you copied, so that document A now has the text of document B.

  3. Delete document B.

  4. Now use the snapshot “Compare” feature to see all the changes in the inspector, and edit document A accordingly.

iOS does not have access to snapshots, so this is only possible in the macOS version, which is in part why Scrivener makes copies of conflicted documents rather than create them as snapshots (which would not be as obvious and would not be accessible on iOS).

Also, I’m not sure why you think that comparison of text is “super straight forward”. It is far from it. Did you have something in mind? Is so, please point me to the Cocoa libraries you had in mind.

All the best,

Ah, snapshots… I need to look at snapshots!

When I said straight forward… cough. I meant there are lots of prior examples, from a user perspective. I’m not sure I’d care to write one from scratch (actually, I know I wouldn’t). I’d hope there would a lib somewhere as it’s something I see it a fair few tools in my day to day web dev. For example, PHPStorm has a really neat merge tool when working with Git (although, an ugly UI)… but that’s Java application. And lets not go there…

All this is moot though if Snapshots can be compared, that is awesome. It’s not something I imagine needing on iOS itself.

Thank you for taking the time to respond, much appreciated. I’ll post how I get on (I’ve turned on snapshots now for my project).

A couple of hints:

Snapshots are on a per-document basis, and selecting a container (such as a folder with sub-documents) in the binder and taking a snapshot will not produce snapshots of the sub-documents. You’ll have to expand the folder and select the rest of the documents.

I like “take snapshot with title”, which I added as a toolbar button. Especially handy if you’re done with draft1 and want to mark all your documents as “Draft 1” before making changes as part of the second draft.

There’s a setting to make the File->Save (CMD-s) command actually useful (so long as you don’t use it every few minutes). In Preferences->General (I think?) there’s a setting to make it take snapshots of all documents changed since the last time you invoked File->Save.

Thanks man, appreciate the additional notes. It’s all working fairly well for me now. Very useful stuff.

Hi there. I am using the compare snapshot tool with documents in script format. I want to make some edits in scrivener (instead of final draft) but I want my collaborator to be able to see the changes I have made. The compare snapshots feature is very useful for this. I have found I can copy it into a new document which shows all the changes quite effectively. The only thing that is missing is that when I do this alot of the script formatting disappears. Is there a way to do this so that the script format settings are preserved?

If not I will have to use final draft, which would be a pity, as I much prefer using scrivener for as long as I can in the writing process.