Content deleted Content added
Disambiguated: git → git (software) |
RandFreeman (talk | contribs) Adding local short description: "Computer file system", overriding Wikidata description "file system which provides for the concurrent existence of several versions of a file" |
||
(43 intermediate revisions by 34 users not shown) | |||
Line 1:
{{Short description|Computer 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
== Similar technologies ==
Line 9 ⟶ 10:
* 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).
===
Versioning file systems provide some of the features of [[revision control system]]s. However, unlike most revision control systems, they are transparent to users, not requiring a separate "commit" step to record a new revision.
=== Journaling file system ===
Versioning file systems should not be confused with [[journaling file system]]s. Whereas [[journaling file system]]s work by keeping a log of the changes made to a file before committing those changes to that file system (and overwriting the prior version), a versioning file system keeps previous copies of a file when saving new changes. The two features serve different purposes and are not mutually exclusive.
=== Object storage ===
Some [[object storage]] implementations offers object versioning, such as [[Amazon S3]].
==Implementations==
Line 21 ⟶ 24:
An early implementation of versioning, possibly the first, was in MIT's [[Incompatible Timesharing System|ITS]]. In ITS, a filename consisted of two six-character parts; if the second part was numeric (consisted only of digits), it was treated as a version number. When specifying a file to open for read or write, one could supply a second part of ">"; when reading, this meant to open the highest-numbered version of the file; when writing, it meant to increment the highest existing version number and create the new version for writing.
Another early implementation of versioning was in [[TENEX (operating system)|TENEX]], which became [[TOPS-20]].<ref>Daniel G. Bobrow, Jerry D. Burchfiel, Daniel L. Murphy, Raymond S. Tomlinson, ''[http://www.linique.com/dlm/tenex/tenex72.txt TENEX, A Paged Time Sharing System for the PDP-10]'' (''Communications of the ACM'', Vol. 15, pp. 135-143, March 1972)</ref>
===Files-11 (RSX-11 and OpenVMS)===
Line 29 ⟶ 32:
===Linux===
* [[NILFS]]
* [[Tux3]] – Most recent change was in 2014.<ref>{{github|OGAWAHirofumi/linux-tux3}}.</ref>
* [[Next3]] – Most recent update was in 2012.
▲* [[NILFS]] - A log-structured file system supporting versioning of the entire file system and continuous snapshotting.
* [[ext3cow]] – Most recent release was in 2005.
On February 8, 2004, Kiran-Kumar Muniswamy-Reddy, Charles P. Wright, Andrew Himmer, and Erez Zadok (all from [[Stony Brook University]]) proposed a stackable file system Versionfs, providing a versioning layer on top of any other Linux file systems.<ref>{{Cite conference |title=A Versatile and User-Oriented Versioning File System |url=https://www.filesystems.org/docs/versionfs-fast04/index.html |author1=Kiran-Kumar Muniswamy-Reddy |author2=Charles P. Wright |author3=Andrew Himmer |author4=Erez Zadok |date=8 February 2004 |conference=Third USENIX Conference on File and Storage Technologies (FAST 2004)}}</ref>
===LMFS===▼
▲===LMFS===
The Lisp Machine File System supports versioning. This was provided by implementations from MIT, LMI, Symbolics and Texas Instruments. Such an operating system was [[Symbolics Genera]].
===
Starting with [[Mac OS X Lion|Lion]] (10.7), [[
▲Starting with [[Mac OS X Lion|Lion]] (10.7), [[OS X]] has a feature called [[Os_x_lion#New_or_changed_features|Versions]] which allows [[Time Machine (Apple software)|Time Machine]]-like saving and browsing of past versions of documents for applications written to use Versions. This functionality, however, takes place at the application layer, not the filesystem layer;<ref>{{cite web|title=Mac OS X Lion file versions, part 2|url=http://tekonomist.wordpress.com/2011/08/06/mac-os-x-lion-file-versions-part-2/|accessdate=28 April 2012}}</ref> Lion does not incorporate a true versioning file system.
===SCO OpenServer===
Line 50:
=== Others ===
* [[Subversion (software)|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.<ref>[http://svnbook.red-bean.com/en/1.4/svn.webdav.autoversioning.html Version Control with Subversion: Next Generation Open Source Version Control]</ref>
* The commercial Clearcase configuration management and revision control software has also supported "MVFS" (multi version file system) on HP-UX, AIX and Windows since the early 1990s.
Line 56 ⟶ 55:
=== Related software ===
The following are not versioning filesystems, but allow similar functionality.
* [[Apple File System|APFS]]<ref>{{Cite web|title=About Apple File System|url=https://developer.apple.com/documentation/foundation/file_system/about_apple_file_system/|access-date=2021-06-09|website=Apple Developer Documentation}}</ref> and [[ZFS]] support instantaneous snapshots and clones.
* [[Btrfs]] supports snapshots.<ref>http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Snapshots, Clones, and Seed Devices" "snapshots" sub bullet.</ref>
* [[HAMMER (file system)|
* [[NILFS]], which supports [[snapshot (computer storage)|snapshotting]].
* [[Plan 9 from Bell Labs|Plan 9]]'s [[Fossil (file system)|Fossil]] file system can provide a similar feature, taking periodic snapshots (often hourly) and making them available in
* [[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.
* pdumpfs, authored by Satoru Takabayashi, is a simple daily backup system similar to Plan 9's /n/dump, implemented in [[Ruby (programming language)|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.<ref>[https://archive.today/20120701101406/http://0xcc.net/pdumpfs/index.html.en pDumpFS Homepage]</ref>
*Microsoft Windows
** [[Shadow Copy]] - is a feature introduced by Microsoft with Windows Server 2003
** 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]] (discontinued) - The GoBack software for Windows from [[NortonLifeLock|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.
** [[Versomatic]] - Versomatic software by [[Acertant]] automatically tracks file changes and preemptively archives a copy of a file before it is modified.
* Cascade File System exposes a [[Subversion (software)|Subversion]] or [[Perforce]] repository via a file system driver. The user must still explicitly decide when to commit changes.
* [[git (software)|git]] implementation documents call git a "content addressable filesystem with a VCS user interface written on top of it."
==See also==
* [[Backup]]
* [[Comparison of * [[Copy
* [[Object storage]]
==References==
{{
== External links ==
* {{cite web|url= https://m.wikihow.com/Back-Up-Data/|title= How to make a file storage|language= en|access-date= Jul 31, 2018|website= [[Wikihow|WikiHow]]}}
{{File systems}}
|