Busting myths about macOS versions and versioning

Considering how long macOS has had its versioning system – for almost seven years now – there’s remarkably little accurate information about it anywhere. Although I have written my own account of it here, there are all sorts of other claims and rumours around. This article looks at some of them, and corrects their mistakes.

The versioning system is not part of Time Machine

Several sites claim that the versioning system is somehow part of Time Machine. There are two features which are responsible for this misunderstanding. Most obviously, the versions browser uses an almost identical interface to that of the Time Machine app, although there are some very important differences.

The other confusing feature of the versions browser is that it also gives access to copies of the document which have been saved in your Time Machine backup, as well as those in the versions database.

Time Machine makes backups to its backup folder, on your backup volume. Mobile Time Machine makes snapshots, which are different again, and differ on APFS too. Neither Time Machine nor its Mobile version add versions to the versions database. Timed auto-save is not performed by Time Machine, nor does it affect your Time Machine backup, but it writes versions into the versions database.

Technically, within macOS, the versioning system is actually part of the Managed File Access features of the File System, and is related to the File Manager, which provides high-level access to files, and is part of the Document Architecture. It is not a background service which can be turned off or on in the way that you can with Time Machine.

If something goes wrong with the versioning system, you may find yourself unable to save documents, but Time Machine will continue to make backups as normal. If you turn Time Machine off, the versioning system continues to function exactly as it did before.

The versioning system doesn’t contain lots of files from long-dead documents

When documents are emptied from the Trash, or even deleted from Terminal’s command line using the rm command, all their previous versions are also removed from the database. That is a feature of the File System.

There are, I am sure, low-level ways in which documents can become dissociated from their stored versions, but I have not yet seen any document that only has old versions and none current.

The versioning system is no threat to privacy

Like all folders, the hidden folder used for the versioning system, .DocumentRevisions-V100, has permissions. Those are set by default to prevent any user from browsing its contents unless they obtain root privileges. No non-admin user of your Mac can browse the contents of your Mac’s versioning system. Similarly, user A cannot browse the versions saved by user B.

Because of the folder permissions, versions are actually more private and more secure than the current versions of those documents. And if you encrypt the volume using FileVault, the versioning system is encrypted too. If you’re worried about someone accessing old versions of particular documents, open them in their normal editing app, open the version browser, and remove those old versions.

Backups are in reality a far greater threat to privacy, and don’t provide anything like the level of protection that macOS versioning does. Is your Time Machine backup volume fully encrypted?

You can save space by removing the versioning database, but…

First, it will be created again, even if you have Time Machine turned off. If you don’t restart your Mac, it is likely to be recreated within the next twenty-four hours. If you restart your Mac, it should be re-instated after that next restart. Once it’s there again, macOS and your apps will start putting new versions into it, so if you need to save the space you will have to keep removing it every time that it is rebuilt.

Second, you will be the loser, because all those old versions will have been lost forever. The whole purpose of the versioning system is to provide you with access to previous versions of your documents. You can then restore from them, copy and paste missing sections, and so on. Once you have destroyed those old versions, you will be unable to do that.

Third, removing parts of the database may well cause problems. Versioning is now built into a lot of macOS apps. When those apps save your documents, either routinely or from a manual Save, macOS automatically puts the current version of the document into the versioning system, which increments version numbers and ages those versions saved. If you have removed part of that system, what is left is likely to misbehave.

At worst, macOS could set your broken versioning database aside and create a new one, in which case you will have lost space, not gained it. Some versions of macOS cannot save documents properly if the database is missing, which is a very serious problem.

It is safe to open that confidential PDF in Preview

The macOS versioning system doesn’t arbitrarily save versions to its database whenever it feels like it. There are three situations in which a version will be saved there:

  • The user saves the document using the Save command. In this case, apps which support versioning will save the previous version to the versioning database, and the version being saved becomes the current one. If you don’t want any earlier versions to hang around, simply open the version browser and delete them.
  • The app auto-saves the document according to its timer, in apps which support auto-saving, when it is enabled, and when the document has changed. If you don’t change anything in the document, it is not auto-saved.
  • The app itself writes out a new version.

If you make no changes to a document, then it is not automatically saved to create a new version. It is easy to verify this: open a PDF document in Preview, and make no changes to it. Just leave it open for an hour or two, then open its version browser. You’ll see that there is still only the one version of that document, the current one.

And if you’re serious about protecting that confidential PDF, shouldn’t it be locked down read-only, password-protected, and encrypted anyway?

Many macOS apps now support versioning

Many users think that the only major apps which current support versioning are those from Apple. That was true around six years ago, when Apple had only just introduced the system. Versioning is now built into the standard macOS document architecture, and it is more work to exclude versioning than to include it.

If the major apps which you use don’t support versioning, then it is a good indication that they don’t use standard macOS support features. This should alert you to the risk that they may be prone to their own bugs in managing files, act idiosyncratically, and are likely to have compatibility issues with future macOS updates and upgrades.

macOS versioning is quite opaque

Yes, it is. It was designed to be almost entirely hidden from the user, and just to get on and do the job. It was designed when macOS security was much quieter, and many of us were not so concerned with privacy or transparency.

Security (and privacy) by obscurity is never good, and makes fault-finding and maintenance much harder too. That’s one of the reasons that I am developing Revisionist and RevisionCrawler. The problem is not the versioning system, which serves Mac users well, but the lack of tools for working with it, and some of the misunderstandings that have arisen.