Versioning file system

A versioning file system is similar to a periodic backup, with several key differences.

Version numbers start at 1 and count upward as new instances of a file are created.

The "purge" DCL/CCL command can be used at any time to manage the number of versions in a specific directory.

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.

HTFS, adopted as the primary filesystem for SCO OpenServer in 1995, supports file versioning.

Versioning is enabled on a per-directory basis by setting the directory's setuid bit, which is inherited when subdirectories are created.

The environment variable and general accessibility allow versions to be managed with the usual filesystem utilities, though there is also an "undelete" command that can be used to purge and restore files, enable and disable versioning on directories, etc.