True story. Back when Tonya and I were at Cornell, she once had a summer job counting pine needles for an acid rain study. This was the job that knocked her out of biology and into the computer world — counting pine needles was just too boring for words. But the memory from that job that has stuck is that of one of her student colleagues who boasted about knowing how to use WordPerfect… and then proceeded to print everything he wrote up before turning the computer off, because he didn’t know how to save a file.
Saving is good. And in general, auto-saving is also good, since anything that protects against data loss is worthwhile. And while it’s possible to quibble with certain aspects of the Auto Save feature in Mac OS X 10.7 Lion, it too is generally a good thing. However, there is one notable problem with Lion’s Auto Save feature — actually with Auto Save’s sidekick, Versions — that hasn’t gotten much attention, despite being a recipe for data loss for people who regularly work on files stored either on network servers or any volume — USB flash drives and digital camera media cards are the most likely — not formatted as Mac OS Extended (also known as HFS+).
Here’s the problem, and thanks to reader Joel Lingenfelter for the heads-up on this. Launch Pages (or any of Apple’s Auto Save-capable apps, such as TextEdit). Create a document, enter some text, and save it to a network volume or a non-HFS+-formatted USB flash drive. Close the document. All is well and good so far, but stay with me.
Open the document from the remote volume, and make some more changes. Now, without explicitly choosing File > Save a Version or pressing Command-S, close the document with File > Close (Command-W). Auto Save does its thing, silently saving your changes to the original document before it closes. But imagine you’ve actually just made a horrible mistake with those changes, and need to revert. That shouldn’t normally be a problem, since Auto Save works hand-in-hand with Versions so you can revert to previous versions. But in this case, you’re out of luck.
To see why, open the document once again, but this time hover over the document name in the window’s title bar to reveal the tiny downward-pointing triangle that conceals access to Versions. Click it, and from the drop-down menu, choose Browse All Versions. Unfortunately, when you do this, you’re informed that no previous versions are available. What? Why not?!
Here’s what’s going on. Versions stores the document versions in a hidden
.DocumentRevisions-V100 directory at the root level of the disk containing the document. For whatever reason, Lion isn’t capable of creating that directory on a non-HFS+ volume, and when working from a network volume, there must be some other problem, possibly related to permissions, or to the fact that what appears as a network-mounted disk may in fact just be a shared folder somewhere within that disk. So, when working with documents stored on either a network volume or a volume that’s not formatted as HFS+, Versions simply doesn’t work.
You might wonder why Lion doesn’t just tell the user this, and, in fact, it does, but only when you explicitly choose File > Save a Version or press Command-S and subsequently close the document. This, then, is the real bug — if you create a document in an Auto Save-savvy app, make changes, save it to a volume that doesn’t support Versions, and close it, Lion stays quiet. You can open the file, make changes, and close it multiple times without any warning that Versions isn’t protecting you. But if you open it, make changes, and press Command-S to save a version, when you next close that document, Lion warns you that it is being saved on a volume that doesn’t support Versions.
What about quitting with a document open? That’s a bit different. From what I can tell by testing with Pages, if you create a document and save it on an unsupported volume, make changes, and quit without doing anything else, Auto Save saves the current state of the document and Versions saves the initial state of the document, possibly as part of Lion’s Resume feature (a hidden version of the file with a period prefixing its name appears at the root level of the document’s disk). You can continue to open the document, make changes, and quit, and while Auto Save continually saves the current state of the document, Versions never goes beyond that initial version. That’s true whether you open the document itself, or let Pages open it automatically via Resume. However, if you ever try to close the document without quitting, Lion does warn you properly.
In short, Versions fails silently for documents stored on unsupported volumes if you either close without saving explicitly, or if you quit without closing explicitly. There is no rational justification for this behavior, so I have to assume it’s a bug.
The obvious solution for Apple is simply to revamp Versions so it works with network volumes and volumes not formatted as HFS+. But, assuming that’s non-trivial, Apple could at least warn the user whenever an autosaved document not protected by Versions is being closed or quit. (There’s already a Don’t Show This Message Again checkbox in the warning dialog, so there’s little worry about it being too intrusive.) However, additional notification would be welcome. Personally, I think Versions is too hidden as it is, so this suggestion may also be too subtle, but what if the Versions drop-down menu in the document’s title bar had a tiny red X over it when revealed, or if the menu itself replaced the Browse Previous Versions item with something like Disk Doesn’t Support Versions.
There are also some workflow lessons to be learned. First, let’s say that your company stores Pages files containing correspondence templates on an internal server for anyone to open, modify, print, and close. Changes shouldn’t be saved, and you’ve trained everyone to close without saving (hard to ensure, but an understandable policy). In Lion, Pages will autosave those changes, messing up the templates. The workflow change is to lock those documents, which you do by selecting them in the Finder, pressing Command-Option-I (same as Option-choosing File > Show Inspector), and click the Locked checkbox. Subsequently, when someone opens one of those documents and tries to make a change, they’ll be prompted to unlock or duplicate it. They should duplicate the document, make the changes, print them, and then close the duplicate without saving it.
In an alternate scenario where people now open a template, then use Save As to make a copy that is modified and retained, it would be better to turn the template into a stationery pad, using the Stationery Pad checkbox in the Finder’s Get Info window or Inspector above the Locked checkbox. Whenever a stationery pad document is opened, the Finder makes a copy instantly and opens the copy instead.
The other major workflow change that the move to Auto Save and Versions suggests is that using a USB flash drive to store files that you use on both a Mac at home and a Windows-based PC at work could be problematic, since such drives aren’t likely to be formatted as HFS+ and thus wouldn’t benefit from Versions. We’re not big USB flash drive fans, since email and Dropbox and file sharing have always seemed like better ways to move files around, and TUAW has now compiled a list of reasons why USB flash drives are a poor choice for day-to-day work. If you currently rely on a USB flash drive, you might investigate Dropbox or at least a solution that doesn’t entail working on files directly on the drive.
Similarly, if you’re accustomed to editing photos directly on your digital camera’s media card (which seems a little odd to us), avoid doing so with Preview, which supports Auto Save, or wean yourself of the habit entirely.
It’s unfortunate that Auto Save and Versions, technologies designed to protect us from data loss, can interact with real-world systems and techniques in ways that actually increase the chance of good data being overwritten by bad data. We need Apple to address the technical problems, but it’s up to us to modify our behavior to make the best use of these new capabilities.