Tuesday, March 01, 2011, 09:00 pm
Inside Mac OS X 10.7 Lion: Auto Save, File Versions and Time Machine
Versions and Time Machine integration
However, Windows' Shadow Copy is really intended for creating a snapshot of an entire volume for backup purposes; users can't trigger the creation of a new version of an individual file in Windows. This makes Lion's Versions a very different beast: its more akin to a versioning file system that works like Time Machine, but local to the user's own disk.
This also appears to be used to make Time Machine much faster to open, as the Time Machine user interface can now access local snapshots take between remote backups, a sort of "instant Time Machine" retained locally on the machine.
Prior to Lion, Time Machine only worked if you had a remote backup accessible from an network or externally attached disk. Now it can be opened immediately to access local snapshots. If you have both local snapshots and remote backups, Time Machine will let you browse both, with the remote backups depicted in a green timeline and the more immediate and recent local snapshots presented in black and white.
Auto Save and Version integration
In applications that Auto Save, regularly saved Versions are created automatically. Lionized apps like TextEdit no longer mark their documents as unsaved via a red dot in the window close button, as they should be saving documents automatically.
When an app quits, its documents should be saved, as they are on iOS; this wasn't always the case in our testing however. If an app quits or crashes, new changes since the last Version were sometimes lost. This is likely something that will be address as Lion continues to develop. Lion's TextEdit also didn't work correctly with bundle files (folders that act like files).
Rather than an unsaved red dot, Auto Save documents are now given a dropdown menu in the upper right corner of the window that indicates they've been edited since the last Version was saved. This menu also allows the document to be locked to prevent any new changes from being saved to the current Version.
When you attempt to make changes to a locked document, you are prompted to Unlock the file so the changes can be Auto Saved to the document as a new Version, or alternatively you can choose to Duplicate the file so your existing locked document remains unaltered.
Users who currently accept documents from another user and then Save As to a new file to make isolated changes can now Lock the file and Duplicate it to create two separate documents. Alternatively, documents can simply be edited over time with multiple internal Versions, allowing a previous version of the document in time to be compared, borrowed from, or restored.
Files in the Downloads folder are automatically locked by the operating system so the user is prompted to manually Unlock or Duplicate the file in an appropriate location for files that will be edited on an ongoing basis. Files are also locked after two weeks to prevent inadvertent changes introduced while opening and reading a document from being unnecessarily saved.
The Edited/Locked dropdown menu also allows the user to Revert the document to the last saved Version, or to browse all Versions saved within the file using the Time Machine-like, file Versions comparison interface.
Another Lion feature conceptually borrowed from iOS is Resume, which leaves apps in the state they were in when last quit. Because iOS documents are automatically saved, it's not necessary for users to manage the saving of open documents when an iOS app is quit, either by the user or automatically by the OS (such as to free available memory). When the user reopens an iOS app, it can resume to the state it was formerly left.
Lion brings similar functionality to the desktop, making file and app management less important for users to worry about. Prior to Mac OS X, the classic Mac OS reserved a set amount of RAM for each application as it was opened. This made quitting open apps a necessary step, because it freed up resources needed to open other apps. With the Unix-based Mac OS X, apps running idle in the background typically consume very little RAM or system resources, thanks to OS management of virtual memory allocation and preemptive multitasking, but there still may be reasons to quit apps that don't need to be open.
The classic Mac OS concept of manually quitting open apps remains in Mac OS X, and is somewhat inconsistent. Some apps automatically quit when their last window is closed (such as System Preferences), while others remain open in the background whether they have open windows or not (such as Safari or Mail). The Snow Leopard Dock indicates which apps are running with an indicator light.
In Lion, the indicator light is not shown by default (although it can be turned back on via a Dock preference) because it really doesn't matter to the user whether apps are open or not, particularly as apps begin to support Auto Save and can therefore be immediately quit without losing any data (or requiring any open document review by the user). Like iOS, this should eventually enable the OS to terminate apps that are open but not being used (if necessary), and provide more consistent behavior regarding whether an app is open whether it has windows open or not.
With SSDs and fast hard drives, it is not really necessary to leave apps open, because it doesn't take a significant amount of time to launch most applications. For users, this means they can simply ignore whether apps are running or not, because when they open a document or click on a Dock app icon, the app can launch without any real delay. Resume extends this feature to also restore the state of apps and their windows after the system restarts, such as after a system update.
On Topic: Mac OS X
- Apple adds security enhancements to Java 6 in latest update
- OS X Mavericks' new App Nap, Timer Coalescing features target battery efficiency
- Adobe releases major update to Creative Cloud desktop apps
- Safari 7.0 streamlined and accelerated for OS X Mavericks
- Why the Mac Finder took so long to get the new Tabs in OS X Mavericks