stringtranslate.com

Версионность файловой системы

Версионная файловая система — это любая компьютерная файловая система , которая позволяет компьютерному файлу существовать в нескольких версиях одновременно. Таким образом, это форма контроля версий . Наиболее распространенные версионные файловые системы хранят несколько старых копий файла. Некоторые ограничивают количество изменений в минуту или в час, чтобы избежать хранения большого количества тривиальных изменений. Другие вместо этого делают периодические снимки, к содержимому которых можно получить доступ с помощью методов, аналогичных методам для обычного доступа к файлам.

Похожие технологии

Резервное копирование

Файловая система с управлением версиями похожа на периодическое резервное копирование , но имеет несколько ключевых отличий.

По сравнению с системами контроля версий

Версионные файловые системы предоставляют некоторые функции систем контроля версий . Однако, в отличие от большинства систем контроля версий, они прозрачны для пользователей, не требуя отдельного шага «фиксации» для записи новой версии.

Журналируемая файловая система

Версионные файловые системы не следует путать с журналируемыми файловыми системами . В то время как журналируемые файловые системы работают, сохраняя журнал изменений, внесенных в файл, перед фиксацией этих изменений в этой файловой системе (и перезаписью предыдущей версии), версионная файловая система сохраняет предыдущие копии файла при сохранении новых изменений. Эти две функции служат разным целям и не являются взаимоисключающими.

Хранение объектов

Некоторые реализации объектного хранилища предлагают управление версиями объектов, например Amazon S3 .

Реализации

ЕГО

Ранняя реализация управления версиями, возможно, первая, была в ITS Массачусетского технологического института . В ITS имя файла состояло из двух шестисимвольных частей; если вторая часть была числовой (состоящей только из цифр), она рассматривалась как номер версии. При указании файла для открытия для чтения или записи можно было указать вторую часть ">"; при чтении это означало открытие версии файла с самым высоким номером; при записи это означало увеличение на единицу существующего номера версии и создание новой версии для записи.

Еще одна ранняя реализация управления версиями была в TENEX , которая стала TOPS-20 . [1]

Файлы-11 (RSX-11 и OpenVMS)

Мощный пример системы управления версиями файлов встроен в операционную систему RSX-11 и OpenVMS от Digital Equipment Corporation . По сути, всякий раз, когда приложение открывает файл для записи, файловая система автоматически создает новый экземпляр файла с номером версии, добавленным к имени. Номера версий начинаются с 1 и увеличиваются по мере создания новых экземпляров файла. Когда приложение открывает файл для чтения, оно может либо указать точное имя файла, включая номер версии, либо просто имя файла без номера версии, в этом случае открывается самый последний экземпляр файла. Команда DCL/CCL «purge» может использоваться в любое время для управления количеством версий в определенном каталоге. По умолчанию все версии всех файлов в текущем каталоге, кроме самых высоких, будут удалены; это поведение можно переопределить с помощью переключателя /keep=n и/или путем указания пути(ей) к каталогу и/или шаблонов имен файлов. Системы VMS часто запрограммированы на очистку пользовательских каталогов по регулярному расписанию; Иногда конечные пользователи ошибочно воспринимают это как свойство системы управления версиями.

Линукс

8 февраля 2004 года Киран-Кумар Мунисвами-Редди, Чарльз П. Райт, Эндрю Химмер и Эрез Задок (все из Университета Стоуни-Брук ) предложили стекируемую файловую систему Versionfs, обеспечивающую уровень управления версиями поверх любых других файловых систем Linux. [3]

ЛМФС

Lisp Machine File System поддерживает версионность. Это было реализовано реализациями MIT, LMI, Symbolics и Texas Instruments. Такой операционной системой была Symbolics Genera .

macOS

Начиная с Lion (10.7), в macOS появилась функция Versions , которая позволяет сохранять и просматривать прошлые версии документов в стиле Time Machine для приложений, написанных для использования Versions. Однако эта функциональность реализуется на уровне приложения, а не файловой системы; [4] Lion и более поздние версии не включают в себя настоящую файловую систему управления версиями.

SCO OpenServer

HTFS , принятая в качестве основной файловой системы для SCO OpenServer в 1995 году, поддерживает управление версиями файлов. Управление версиями включается для каждого каталога путем установки бита setuid каталога, который наследуется при создании подкаталогов. Если управление версиями включено, новая версия файла создается при удалении файла или каталога или при открытии существующего файла с усечением. Неактуальные версии остаются в пространстве имен файловой системы под именем исходного файла, но с прикрепленным суффиксом, состоящим из точки с запятой и порядкового номера версии. Все версии, кроме текущей, скрыты от чтения каталога (если не установлена ​​переменная окружения SHOWVERSIONS), но версии в остальном доступны для всех обычных операций. Переменная окружения и общая доступность позволяют управлять версиями с помощью обычных утилит файловой системы, хотя также есть команда «undelete», которую можно использовать для очистки и восстановления файлов, включения и отключения управления версиями в каталогах и т. д.

Другие

Сопутствующее программное обеспечение

Следующие файловые системы не являются файловыми системами с контролем версий, но предоставляют схожую функциональность.

Смотрите также

Ссылки

  1. ^ Дэниел Г. Боброу, Джерри Д. Берчфилд, Дэниел Л. Мерфи, Рэймонд С. Томлинсон, TENEX, Система страничного разделения времени для PDP-10 ( Сообщения ACM , том 15, стр. 135-143, март 1972 г.)
  2. ^ linux-tux3 на GitHub .
  3. ^ Киран-Кумар Мунисвами-Редди; Чарльз П. Райт; Эндрю Химмер; Эрез Задок (8 февраля 2004 г.). Универсальная и ориентированная на пользователя файловая система управления версиями. Третья конференция USENIX по технологиям файлов и хранения (FAST 2004).
  4. ^ "Версии файлов Mac OS X Lion, часть 2". 6 августа 2011 г. Получено 28 апреля 2012 г.
  5. ^ Контроль версий с Subversion: следующее поколение контроля версий с открытым исходным кодом
  6. ^ "О файловой системе Apple". Документация разработчика Apple . Получено 2021-06-09 .
  7. ^ http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Снимки, клоны и исходные устройства» подпункт «снимки».
  8. ^ Домашняя страница pDumpFS
  9. ^ "Git Internals". Git по сути является файловой системой с адресацией по содержимому, поверх которой написан пользовательский интерфейс VCS.
  10. ^ "Что такое Gitfs". Presslabs . 24 июля 2015 г. Получено 2022-03-07 .

Внешние ссылки