A файловая система управления версиями - это любой компьютер файловая система, которая позволяет компьютерный файл существовать в нескольких версиях одновременно. Таким образом, это форма контроля версий. В наиболее распространенных файловых системах управления версиями сохраняется некоторое количество старых копий файла. Некоторые ограничивают количество изменений в минуту или час, чтобы не хранить большое количество тривиальных изменений. Другие вместо этого делают периодические снимки, к содержимому которых можно получить доступ с семантикой, аналогичной обычному доступу к файлам.
Файловая система управления версиями похожа на периодическое резервное копирование, с несколькими ключевыми отличиями.
Файловые системы управления версиями предоставляют некоторые возможности систем контроля версий. Однако, в отличие от большинства систем контроля версий, они прозрачны для пользователей и не требуют отдельного шага «фиксации» для записи новой ревизии.
Файловые системы управления версиями не следует путать с файловыми системами журналирования. В то время как журналируемые файловые системы работают, ведя журнал изменений, внесенных в файл, прежде чем зафиксировать эти изменения в этой файловой системе (и перезаписать предыдущую версию), файловая система управления версиями сохраняет предыдущие копии файла при сохранении новые изменения. Эти две функции служат разным целям и не исключают друг друга.
Некоторые реализации Хранилища объектов предлагают управление версиями объектов, например Amazon S3.
Ранняя реализация управления версиями, возможно первая, была в ITS MIT. В ITS имя файла состоит из двух частей по шесть символов; если вторая часть была числовой (состояла только из цифр), она рассматривалась как номер версии. При указании файла для открытия для чтения или записи можно указать вторую часть ">"; при чтении это означало открыть версию файла с самым большим номером; при написании это означало увеличить самый высокий существующий номер версии и создать новую версию для записи.
Еще одна ранняя реализация управления версиями была в TENEX, который превратился в TOPS-20.
Мощный Пример системы управления версиями файлов встроен в операционную систему RSX-11 и OpenVMS от Digital Equipment Corporation. По сути, всякий раз, когда приложение открывает файл для записи, файловая система автоматически создает новый экземпляр файла с номером версии, добавленным к имени. Номера версий начинаются с 1 и подсчитываются по мере создания новых экземпляров файла. Когда приложение открывает файл для чтения, оно может либо указать точное имя файла, включая номер версии, либо просто имя файла без номера версии, и в этом случае открывается самый последний экземпляр файла. Команду «purge» DCL / CCL можно использовать в любое время для управления количеством версий в определенном каталоге. По умолчанию все версии всех файлов в текущем каталоге, кроме самых высоких номеров, будут удалены; это поведение можно переопределить с помощью переключателя / keep = n и / или путем указания путей к каталогам и / или шаблонов имен файлов. В системах VMS часто создаются сценарии для регулярной очистки пользовательских каталогов; Иногда это неверно истолковывается конечными пользователями как свойство системы управления версиями.
8 февраля 2004 г. Киран-Кумар Мунисвами-Редди, Чарльз П. Райт, Эндрю Химмер и Эрез Задок (все из Университета Стоуни-Брук ) предложил приложение, удобное для многих пользователей, тестировавших приложение. Система была разработана с использованием программного обеспечения Linux, поэтому сначала она использовалась в Linux.
Файловая система машины Lisp поддерживает управление версиями. Это было обеспечено реализациями от MIT, LMI, Symbolics и Texas Instruments. Такой операционной системой была Symbolics Genera.
. Начиная с Lion (10.7), macOS имеет функцию под названием Версии <16.>, который позволяет Time Machine сохранять и просматривать прошлые версии документов для приложений, написанных для использования версий. Однако эта функция реализуется на уровне приложения, а не на уровне файловой системы; Lion и более поздние выпуски не включают настоящую файловую систему управления версиями.
HTFS, принятая в качестве основной файловой системы для SCO OpenServer в 1995 году, поддерживает управление версиями файлов. Управление версиями включается для отдельных каталогов путем установки бита setuid каталога, который наследуется при создании подкаталогов. Если управление версиями включено, новая версия файла создается при удалении файла или каталога или при открытии существующего файла с усечением. Устаревшие версии остаются в пространстве имен файловой системы под именем исходного файла, но с добавленным суффиксом, состоящим из точки с запятой и порядкового номера версии. Все версии, кроме текущей, скрыты от чтения каталогов (если не установлена переменная среды SHOWVERSIONS), но в остальном версии доступны для всех обычных операций. Переменная среды и общий доступ позволяют управлять версиями с помощью обычных утилит файловой системы, хотя есть также команда «восстановить», которую можно использовать для очистки и восстановления файлов, включения и отключения управления версиями в каталогах и т. Д.
Следующее ниже не является версией файловых систем, но допускает аналогичные функции.