- Versioning file system
A versioning file system is any computer
file system which allows acomputer file to exist in several versions at the same time. Thus it is a form ofrevision control . Most common versioning file systems keep a number of old copies of the file. Some limit the number of changes per minute or per hour to avoid storing large numbers of trivial changes. Others instead take periodic snapshots whose contents can be accessed with similar semantics to normal file access.Similar technologies
Backup
A versioning file system is similar to a periodic
backup , with several key differences.
* Backups are normally triggered on a timed basis, while versioning occurs when the file changes.
* Backups are usually system-wide or partition-wide, while versioning occurs independently on a file-by-file basis.
* Backups are normally written to separate media, while versioning file systems write to the same hard drive (and normally the same folder, directory, or local partition).Revision control system
Versioning file systems provide some of the features of
revision control system s. However, unlike most revision control systems, they are transparent.Journaling file system
Versioning file systems should not be confused with
journaling file system s.Implementations
TOPS-20
The first versioning filesystem was introduced in the
TOPS-20 operating system.Fact|date=May 2007Files-11 (OpenVMS)
A powerful example of a file versioning system is built into the
OpenVMS operating system fromDigital Equipment Corporation . In essence, whenever an application opens a file for writing, the file system automatically creates a new instance of the file, with a version number appended to the name. Version numbers start at 1 and count upward as new instances of a file are created. When an application opens a file for reading, it can either specify the exact file name including version number, or just the file name without the version number, in which case the most recent instance of the file is opened. The file system automatically deletes sufficiently old versions of a file when a new instance is created; the maximum number of files retained is configurable, with an upper limit of 32767.Linux
No mainstream Linux file system supports versioning, but a number of experimental/research and lesser-known solutions do, namely:
* [http://wayback.sourceforge.net/ Wayback] - User-level Versioning File System for Linux
* [http://n0x.org/copyfs/ CopyFS] - A copy-on-write, versioned filesystem
*ext3cow
*Tux3 Others
* Subversion has a feature called "autoversioning" where a WebDAV source with a subversion backend can be mounted as a file system on systems that support this kind of mount (Linux, Windows and others do) and saves to that file system generate new revisions on the revision control system. [ [http://svnbook.red-bean.com/en/1.4/svn.webdav.autoversioning.html Version Control with Subversion: Next Generation Open Source Version Control] ]
Related software
The following are not versioning filesystems, but allow similar functionality.
* TheZFS supports [http://www.opensolaris.org/os/community/zfs/ Instantaneous snapshots and clones]
*NILFS , which supports snapshotting.
* Plan 9 Fossil - AVenti backed Fossil filesystem can provide a similar feature, where periodic snapshots are taken (often hourly) and a selection of these are stored forever into Venti (usually daily), while the others are discarded. This of course doesn't record every version of the file. The previous versions are made available at /archive.
*Write Anywhere File Layout -NetApp 's storage solutions implement a file system called WAFL, which uses snapshot technology to keep different versions of all files in a volume around.
* [http://freshmeat.net/projects/pdumpfs/ pdumpfs] , authored by Satoru Takabayashi, is a simple daily backup system similar to Plan9's dumpfs, implemented in Ruby. It functions as a snapshotting tool, which makes it possible to copy a whole directory to another location by using hardlinks. Used regularly, this can produce an effect similar to versioning [ [http://0xcc.net/pdumpfs/index.html.en pDumpFS Homepage] ] .
*Microsoft Windows
**Rollback Rx - Allows snapshots of disk partitions to be taken. Each snapshot contains only the differences between previous snapshots, and take only seconds to create. Can be reliably used to keep a Windows OS stable and/or protected from malware.
**GoBack - The GoBack software for Windows fromSymantec enables reversion of files, directories or disks to previous states. It can record a maximum of 8GB in changes, and temporarily stops recording each change in the event of highI/O activity.
* Cascade File System exposes a Subversion orPerforce repository via a file system driver. The user must still explicitly decide when to commit changes.ee also
*
Comparison of revision control software References
Wikimedia Foundation. 2010.