It’s only human to want to think that you’re in control – at least some of the time. We know that control is often transient and tenuous, and frequently illusory, but it’s comforting nonetheless.
Over the last week, I have been looking progressively deeper into the system within macOS which manages versions. Like so much of what we use on a daily basis, we take it for granted, and don’t worry too much about what’s going on below the surface. In this case, Apple has done an excellent job of hiding the nuts and bolts, and delivering something that just works, to the point where many users aren’t even conscious of what is going on.
By a fortuitous coincidence, while I have been looking at version management, I have been working on a hefty Keynote presentation. Originally 1.5 GB, as the result of several embedded movies, I have been revising and revamping it for a talk that I’m giving on Monday evening. As I was editing it into its new form, I couldn’t help but notice my free disk space rapidly diminishing.
I was fortunate in working on my desktop system, which started off with a smidgin under 1 TB free space on its Fusion Drive. Each time that I, or Keynote, saved the presentation, macOS was writing another gigabyte or so into its hidden version database. As the minutes went past, my free disk space was falling in front of my eyes. Had I been using my MacBook Air with its 480 GB SSD, this would have been considerably more worrying.
The knowledgeable Mac user could, of course, have kept clearing out old versions using the Version Browser in Keynote. With its zingy Time-Machine-like interface, the first time that you do that is quite exciting. But to have to keep removing old versions is disruptive: it breaks your working rhythm and concentration.
Features like the versioning system are great assets, but they make management of your Mac’s limited resources very difficult.
In theory, with APFS in High Sierra, multiple versions of large bundles like this should be stored far more efficiently, but they’re also even more opaque to the user and system administrator. If that presentation had been stored on a shared file server, its drives being formatted in APFS, would each of the unchanged component files link to the same extents on the drives, so taking no more space? If they did, and I made a small change to one of the larger video clips, would that share unmodified blocks as a clone, or would it require a complete new copy of the video clip?
Combine macOS version management with APFS file cloning and you have a potentially very efficient system which could make the best use of storage space, but becomes highly unpredictable. Much depends on deep insight into the behaviour of these systems, which Apple doesn’t give us.
Despite being almost seven years old, the version management system built into macOS is almost undocumented. Its only substantive documentation is that provided to developers to enable their apps to use it, which doesn’t describe how it works. There is nothing to explain properly to users or system administrators topics such as how and when macOS decides to purge old versions, or how the user can force it to purge them, other than using its increasingly opaque Version Browser.
APFS has been in use across millions of iOS devices for eleven months now, and the default boot file system for every Mac with an internal SSD for five months, yet it too remains undocumented apart from a short conceptual introduction. The only way to discover how it behaves is to experiment, but in the absence of third-party tools, we have to rely on the few that Apple provides. Third-parties find it very hard to develop those tools because they too need the documentation which is so conspicuously absent.
This isn’t another rant about documentation, though. What struck me most, and deepest, about trying to get the best out of version management is Apple’s sustained reluctance to give the user control. It’s the flip side of the ‘it just works’ concept, which actually means that ‘it just works the way that we want it to’.
Apple makes assumptions about our Macs and our work, in this case that we will always have ample free disk space on which to retain unlimited numbers of versions, or unlimited time and zeal to devote to maintaining those versions. In practice, I suspect, many of us have neither, and all we want is to regain control. We shouldn’t be wrangling in this way with macOS, nor should we be worrying about the privacy of our data hidden away in the versioning database.
Trust and confidence are best earned, not assumed.