Управление версиями файловой системы - Versioning file system

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

Подобные технологии

Резервный

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

  • Резервное копирование обычно запускается по расписанию, а управление версиями происходит при изменении файла.
  • Резервное копирование обычно выполняется в масштабе всей системы или раздела, тогда как управление версиями выполняется независимо для каждого файла.
  • Резервные копии обычно записываются на отдельный носитель, тогда как файловые системы управления версиями записывают на тот же жесткий диск (и обычно в одну и ту же папку, каталог или локальный раздел).

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

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

Файловая система журналирования

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

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

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

Реализации

ЭТО

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

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

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

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

Linux

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

  • НИЛЬФЫ - Файловая система с журнальной структурой, поддерживающая управление версиями всей файловой системы и непрерывное создание снимков. В этом списке это единственная стабильная версия, включенная в основное ядро.
  • Tux3 - Последнее изменение было в 2014 году. [1]
  • Далее3 - Последнее обновление было в 2012 году.
  • ext3cow - Самый последний выпуск был в 2005 году.

LMFS

Файловая система машины Лиспа поддерживает управление версиями. Это было обеспечено реализациями от MIT, LMI, Symbolics и Texas Instruments. Такая операционная система была Symbolics Genera.

macOS

Начиная с Лев (10.7), macOS есть функция под названием Версии который позволяет Машина времени -подобное сохранение и просмотр прошлых версий документов для приложений, написанных для использования версий. Эта функциональность, однако, реализуется на уровне приложения, а не на уровне файловой системы;[3] Lion и более поздние выпуски не включают настоящую файловую систему управления версиями.

SCO OpenServer

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

Другие

  • Subversion есть функция под названием "автоверсия", где WebDAV исходный код с серверной частью Subversion может быть смонтирован как файловая система в системах, поддерживающих этот вид монтирования (Linux, Windows и другие), и при сохранении в этой файловой системе создаются новые версии в системе управления версиями.[4]
  • Коммерческое программное обеспечение для управления конфигурацией и контроля версий Clearcase также поддерживает "MVFS" (многоверсионная файловая система) в HP-UX, AIX и Windows с начала 1990-х годов.

Связанное программное обеспечение

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

  • ZFS поддерживает мгновенные снимки и клоны
  • Btrfs поддерживает снимки [5]
  • HammerFS в DragonFlyBSD есть возможность хранить изменения в файловой системе.
  • НИЛЬФЫ, который поддерживает снимок.
  • План 9 с Ископаемое файловая система может предоставлять аналогичную функцию, делая периодические снимки (часто ежечасно) и делая их доступными в / п / оснастка. Fossil может навсегда заархивировать снимок в Venti (обычно один снимок каждый день) и сделайте их доступными в / п / дамп. Если в течение интервала между моментальными снимками в файл было внесено несколько изменений, в следующий моментальный снимок будет записан только самый последний.
  • Формат файла Write Anywhere - NetApp Решения для хранения данных реализуют файловую систему под названием WAFL, которая использует технологию моментальных снимков для хранения различных версий всех файлов в томе.
  • pdumpfs, созданный Сатору Такабаяши, представляет собой простую систему ежедневного резервного копирования, аналогичную / n / dump в Plan 9, реализованную в Рубин. Он функционирует как инструмент для создания моментальных снимков, что позволяет скопировать весь каталог в другое место с помощью жестких ссылок. При регулярном использовании это может дать эффект, аналогичный управлению версиями.[6]
  • Майкрософт Виндоус
    • Теневая копия - это функция, представленная Microsoft в Windows Server 2003, 2008, 2012, а также в Windows 7, 8 и 10. Теневая копия позволяет вручную или автоматически создавать резервные копии или снимки файла или папки на определенном томе в определенный момент времени.
    • RollBack Rx - позволяет делать снимки разделов диска. Каждый снимок содержит только различия между предыдущими снимками, и его создание занимает всего несколько секунд. Может надежно использоваться для обеспечения стабильности ОС Windows и / или защиты от вредоносных программ.
    • Вернитесь назад (снято с производства) - Программное обеспечение GoBack для Windows от Symantec позволяет возвращать файлы, каталоги или диски в предыдущее состояние. Он может записывать максимум 8 ГБ изменений и временно останавливает запись каждого изменения в случае высокого Ввод / вывод Мероприятия.
    • Версоматик - Программное обеспечение Versomatic от Acertant автоматически отслеживает изменения файла и предварительно архивирует копию файла перед его изменением.
  • Каскадная файловая система предоставляет Subversion или Волей случая репозиторий через драйвер файловой системы. Пользователь все равно должен явно решить, когда фиксировать изменения.
  • мерзавец в документах реализации git называется «файловой системой с адресной информацией, поверх которой написан пользовательский интерфейс VCS». [7]

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

использованная литература

  1. ^ Дэниел Г. Боброу, Джерри Д. Берчфил, Дэниел Л. Мерфи, Раймонд С. Томлинсон, TENEX, страничная система разделения времени для PDP-10 (Коммуникации ACM, Vol. 15, стр. 135-143, март 1972 г.)
  2. ^ Киран-Кумар Мунисвами-Редди, Чарльз П. Райт, Эндрю Химмер и Эрез Задок (8 февраля 2004 г.). «Универсальная и ориентированная на пользователя файловая система управления версиями». FiST: язык и шаблоны стекируемой файловой системы.CS1 maint: несколько имен: список авторов (ссылка на сайт)
  3. ^ «Версии файлов Mac OS X Lion, часть 2». Получено 28 апреля 2012.
  4. ^ Контроль версий с помощью Subversion: Контроль версий с открытым исходным кодом нового поколения
  5. ^ http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Моментальные снимки, клоны и исходные устройства "снимки" подпункта.
  6. ^ Домашняя страница pDumpFS
  7. ^ "Внутреннее устройство Git". По сути, Git - это файловая система с адресацией по содержанию, поверх которой написан пользовательский интерфейс VCS.

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