Versioning file system

Versioning file system

A versioning file system is any computer file system which allows a computer file to exist in several versions at the same time. Thus it is a form of revision 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 systems. However, unlike most revision control systems, they are transparent.

Journaling file system

Versioning file systems should not be confused with journaling file systems.

Implementations

TOPS-20

The first versioning filesystem was introduced in the TOPS-20 operating system.Fact|date=May 2007

Files-11 (OpenVMS)

A powerful example of a file versioning system is built into the OpenVMS operating system from Digital 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.
* The ZFS supports [http://www.opensolaris.org/os/community/zfs/ Instantaneous snapshots and clones]
* NILFS, which supports snapshotting.
* Plan 9 Fossil - A Venti 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 from Symantec 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 high I/O activity.
* Cascade File System exposes a Subversion or Perforce 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.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • File system — For library and office filing systems, see Library classification. Further information: Filing cabinet A file system (or filesystem) is a means to organize data expected to be retained after a program terminates by providing procedures to store,… …   Wikipedia

  • Log-structured file system — A log structured filesystem is a file system design first proposed by John K. Ousterhout and Fred Douglis. Designed for high write throughput, all updates to data and metadata are written sequentially to a continuous stream, called a log.… …   Wikipedia

  • Log-structured File System (BSD) — The Log Structured File System (or LFS) is an implementation of a log structured file system (a concept originally proposed and implemented by John Ousterhout), originally developed for BSD. It was removed from FreeBSD and OpenBSD; the NetBSD… …   Wikipedia

  • File comparison — in computing is the automatic comparing of data between files on a file system. The result of comparisons are typically displayed to the user, but can also be used to accomplish tasks in networks, file systems and revision control.Examples of… …   Wikipedia

  • List of file systems — The following lists identify, characterize and link to more thorough information on computer file systems.Many older operating systems support only their one native file system, which does not bear any name apart from the name of the operating… …   Wikipedia

  • versioning — ver‧sion‧ing [ˈvɜːʆnɪŋ ǁ ˈvɜːrʒ ] noun [uncountable] MARKETING when a company makes particular versions of products for different markets, customers etc: • versioning of computer software for individual clients • Any electronic versioning of the …   Financial and business terms

  • Comparison of file synchronization software — This is a list of file synchronization software. File synchronization is a process of ensuring that files in two or more locations are updated via certain rules. Contents 1 Open source 2 Freeware 3 Commercial 4 See also …   Wikipedia

  • Software versioning — is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (major, minor), these numbers are generally assigned in increasing order and… …   Wikipedia

  • Document management system — A document management system (DMS) is a computer system (or set of computer programs) used to track and store electronic documents and/or images of paper documents. It is usually also capable of keeping track of the different versions created by… …   Wikipedia

  • Concurrent Versions System — Developer(s) The CVS Team Initial release November 19, 1990; 21 years ago (1990 11 19) Stable release …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”