We've made a number of enhancements for Time Slide in OpenSolaris 2009.06. Under the hood nautilus visualization is now fully multithreaded. This means that you can now browse directories with more than 4000 snapshots without noticeable slowdown (That's more than 3000 years of snapshots if you use the default timeslider snapshot schedule !).
On the visualization side, the interface has been polished and we've added the possibility to manually snapshot a directory (either by right-clicking on a directory and selecting the "snapshot now" menu item or in time slider mode by clicking on the camera icon).
You can also delete snapshots manually while browsing through time by clicking on the delete button.
or by using the delete dialog in the time slider setup dialog (System -> Administration -> time slider setup)
We also added another way to browse a given file history. You can access it by right-clicking on a file and then select the "explore versions" item. If no other versions are available then this item is disabled.
You can then browse the different versions of the selected file.
If you're exploring the history of a text file (be it code and plain text). You can compare visually the difference between the two versions. You just need to select a older version and then click the compare button. If you have meld installed (available from the IPS repo), meld will display the two versions of the file side by side.
Time slider is one of the new feature that will be available in OpenSolaris 2008.11.
Time slider provides an automatic way to backup your data on the same disc
using one of Sun's ZFS filesystem unique features, snapshots.
With time slider you can browse and recover files from snapshot backups using the GNOME
If you prefer to watch a video rather than read the rest of this post, I've also made a 3 min screencast about time slider.
The Time slider SMF service and UI developed by Niall Power : This service determine when and which zfs filesystem to snapshot based on a set schedule (by default : at every boot, then every 15 minutes, then every hour, then every day, etc.) This service also monitor the snapshotted filesystems and avoid filling them up by removing the oldest snapshots based on a user predefined percentage of filesystem to be used.
And finally the nautilus ZFS snapshot visualization integration I developed. This part, explained below, allow the user to browse and restore files graphically using the GNOME file manager.
A big thanks to :
Tim for his help on top his "real" work :)
Usability wise to Calum Benson for his ideas and Jaime Guerrero for the slider, icons and name.
How to enable it ?
Time slider is disabled by default on OpenSolaris. You can enable it via System -> Administration -> time slider setup.
How to Browse my snapshots ?
To browse your on-disk backups open any folder with the file manager and see if the restore icon is enabled
(icon highlighted in the image below).
If it is enabled this means that backups of this directory are available.
Once pressed an additional navigation bar appears. It gives you information
the timeline your can explore.
your current location in the backup timeline (the image below shows that you
are still browsing your current directory)
the number of snapshot backups available for this directory and the space
used by the overall zfs snapshots.
You can then drag the slider into the past to retrieve previous versions of
your documents and folders. You can open all your files in read only mode.
Note that from build 101 onward if you browse in list view mode (as oppose to
icon view) a "restore information" column automatically appears.
This column gives you contextual information about either :
the number of different version available for each file, if you browse
in the current/latest version of a directory.
the difference (if any exist) between the snapshotted file and the latest
version of the file.
How do I restore files from backups ?
You can restore previous versions of files and directories by either :
simply drag and
dropping them into another file manager window.
by right clicking on the mouse
and selecting "restore to Desktop".
copy and pasting the selection to present time.
Note : You can disable the zfs snapshot timeline visualization in nautilus via the global preferences dialog
(menu edit->preferences). Once in the dialog select the "Preview" tab and in the folder section uncheck "Visualize ZFS snapshots timeline".
Where is the source ?
The zfs automatic snapshots hg repository can be found here. Its spec-file can be found here. The time slider repository can be found here. Its spec-file there. The nautilus visualization patch for nautilus can be found here.
The next possible steps among others for this project are :
UI enhancements : - a restore tab plugin for the file properties dialog. - clutter based slider widget to provide more information about about the snapshots available. - graphical mean to modify time slider's schedule.
new features : - removable media based off disk backups - network based backups
If you want to get involved you can grab the code and play with it. If you want to contribute let me know :)
Update (Fri Nov 14) : - changed screenshots to integrate the new time slider icon in nautilus (see comments) - added info about the disable option in nautilus (see email thread for details)
just download the install
script and run it. It will : - check you have the right hardware - remove the previous version of compiz installed on the machine - install the new packages - modify you X server configuration file
then logout and back in JDS and click on the "Run Compiz 3D deskop" icon.
To enable and changes plugins behavior run preferences -> CompizConfig Settings Manager or ccsm from the command line.
If you have problems with the install script you can also just extract the solaris packages from the script by supplying the -x argument.
Notes: I didn't have access to any intel machine running Opensolaris b70 locally in Grenoble. So I'm not promising the xorg.conf modifications will work out of the box. email me if you have problems, I'll rev up my install script :)
If you had compiz 0.5.0 installed on your machine previously you'll need to reset the gconf settings for each user. you the following command as the user : gconftool-2 --recursive-unset /apps/compiz otherwise compiz is likely to fail as plugin names and settings have changed.
How do I use it ?
Here are few tips : - workspace expo mode : move the mouse at the top left corner of the screen - expo mode : move the mouse at the top right corner of the screen - cube : ctrl + alt : + mouse button 1 for the spinning cube with reflection + left or right arrow to which workspace + down arrow for workspace expo mode - switcher : Diamond (or windows key) + Tab to which window - water ripple : shift + F9 to start and stop - snow : Diamond (or windows key) + F3 to start and stop - fire paint (!!) : shift + Diamond (or windows key) + mouse button 1 to start shift + Diamond (or windows key) + c to clean up
More generally to figure out the keybindings for each plugin run CompizConfig Settings Manager and check the Actions tab.
Where are the sources, how do I compile it ?
The spec files sources can be found as usual in spec-file-extra. The compile order is the following : SFEsed SFEcompiz SFElibcompizconfig SFEcompizconfig-gconf SFEcompizconfig-python SFElibsexy SFEsexy-python SFEccsm SFEcompiz-bcop SFEgetopt SFEcompiz-fusion-main SFEcompiz-fusion-extra SFEcompiz-fusion-unsup This will create the 21 packages required ;)