Document versions, copying, and iCloud in Mojave, and a new version of DeepTools

Document versions is another of those really powerful features of macOS which has been strangely stunted to the point where its benefits become marginal. This is particularly true when you copy documents with versions, or try moving them into iCloud Drive.

The idea of document versions is not new – I implemented my own local form way back in Classic Mac System 7, using the resource fork – but it’s available in a high proportion of apps which use macOS AppKit frameworks. Each time that you save your document, the previous version is saved into a hidden and locked database in the .DocumentRevisions-V100 folder at the root level of the volume on which the document is stored. Should you want to revert to, or copy from, one of those saved versions, all you have to do is use the Revert To… command in the File menu.

This has saved my work on many occasions, far more frequently than Time Machine has. It isn’t universal across apps, but where it’s available it works with both manual saves and those performed automatically by the app.

The snag with these versions is that they’re tied to that copy of the document. Copy the document, or Save it As another file, and the copy doesn’t retain the versions. Restore a document which had versions when it was backed up by Time Machine, and it has lost all those versions. At the first sign of anything apart from moving the document on the same volume, its versions are thrown away.

Until Mojave, iCloud was similar, in that documents copied to or saved to iCloud also had all previous versions stripped from them, when accessed by another Mac. For those who work on multiple Macs using iCloud Drive as common storage, this effectively broke document versions completely – they may as well have not existed in the first place.

Then Apple suddenly enabled access to document versions in Mojave. As I detailed here at the time I realised this, the implementation had several major flaws which indicated that it was still work in progress.

Now, more than nine months later, I needed to update my tools for working with document versions – Revisionist and the DeepTools set – and thought it would be good to assess progress in addressing those problems. Sadly, I can see no evidence that using document versions across iCloud Drive has changed in the slightest. It remains awkward, unreliable, and much of the time will prove of little or no use. I have also tried to assess whether Catalina promises anything better, but I still can’t get beta 5 to work normally with iCloud Drive, so am unable to examine this at present.

The good news is that, with one minor exception in Revisionist, I have now got my utilities for working with macOS document versions functioning properly in Catalina, and have improved them for those using macOS El Capitan to Mojave too. Yesterday I released a new version of Revisionist, and today I offer the DeepTools from that to help you move document versions wherever you want, even through iCloud.

There are three DeepTools. They’re not posh or fancy, but seem to do their jobs reliably and without fuss. DeepCopy saves a new copy of a document and attaches all the document versions from the original to the copy; this is ideal for making local copies of documents whose versions you want to preserve.

DeepArchive writes a folder full of documents which contain each version of the original document. You can then transport that folder wherever you want – to networked storage, through iCloud Drive, or even to non-Mac systems. When you want to stitch those versions back together, use the third utility, DeepUnarchive, which regenerates your document with all its saved versions.

DeepTools version 1.3 is now available from here: deeptools13
from Downloads above, and from its Product Page. They work fully in all versions of macOS from El Capitan to Catalina (iCloud Drive willing).