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

редактировать

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

Содержание
  • 1 Подобные технологии
    • 1.1 Резервное копирование
    • 1.2 По сравнению с системами контроля версий
    • 1.3 Журнальная файловая система
    • 1.4 Хранилище объектов
  • 2 Реализации
    • 2.1 ITS
    • 2.2 Файлы-11 (RSX-11 и OpenVMS)
    • 2.3 Linux
    • 2.4 LMFS
    • 2.5 macOS
    • 2.6 SCO OpenServer
    • 2.7 Другое
    • 2.8 Сопутствующее программное обеспечение
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Подобные технологии

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

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

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

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

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

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

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

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

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

Реализации

ITS

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

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

Files-11 (RSX-11 и OpenVMS)

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

Linux

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

  • NILFS - файловая система с журнальной структурой, поддерживающая управление версиями всей файловой системы и непрерывное создание снимков. В этом списке это единственное стабильное ядро, включенное в основную ветку ядра.
  • Tux3 - самое последнее изменение было в 2014 году. [1]
  • Next3 - самое последнее обновление было в 2012 году.
  • ext3cow - Последний выпуск был в 2005 году.

LMFS

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

macOS

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

SCO OpenServer

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

Другое

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

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

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

  • ZFS поддерживает мгновенные снимки и клоны.
  • Btrfs поддерживает снимки.
  • HammerFS в DragonFlyBSD может сохранять версии в файловой системе.
  • NILFS, который поддерживает моментальный снимок.
  • файловой системы Fossil Plan 9 может предоставлять аналогичную функцию, делая периодические моментальные снимки (часто ежечасно) и делая их доступными в / n / snap. Fossil может навсегда заархивировать снимок в Venti (обычно один снимок каждый день) и сделать их доступными в / n / dump. Если в течение интервала между моментальными снимками в файл было внесено несколько изменений, в следующий моментальный снимок будет записан только самый последний.
  • Write Anywhere File Layout - Решения NetApp для хранения реализуют файловая система под названием WAFL, которая использует технологию моментальных снимков для хранения различных версий всех файлов в томе.
  • pdumpfs, созданный Сатору Такабаяси, представляет собой простую систему ежедневного резервного копирования, аналогичную реализованной в Plan 9 / n / dump. в Руби. Он работает как инструмент для создания снимков, что позволяет скопировать весь каталог в другое место с помощью жестких ссылок. При регулярном использовании это может дать эффект, аналогичный управлению версиями.
  • Microsoft Windows
    • Теневое копирование - это функция, представленная Microsoft в Windows Server 2003, 2008, 2012, а также в Windows 7, 8 и 10. Теневое копирование позволяет вручную или автоматически создавать резервные копии или моментальные снимки файла или папки на определенном томе в определенный момент времени.
    • RollBack Rx - Позволяет делать снимки разделы диска должны быть заняты. Каждый снимок содержит только различия между предыдущими снимками, и его создание занимает всего несколько секунд. Может надежно использоваться для обеспечения стабильности ОС Windows и / или защиты от вредоносных программ.
    • GoBack (снято с производства) - Программное обеспечение GoBack для Windows от Symantec позволяет возвращать файлы, каталоги или диски в предыдущие состояния. Он может записывать максимум 8 ГБ изменений и временно останавливает запись каждого изменения в случае высокой активности ввода-вывода.
    • Versomatic - программное обеспечение Versomatic автоматически отслеживает изменения файлов и предварительно архивирует копия файла перед его изменением.
  • Cascade File System предоставляет доступ к репозиторию Subversion или Perforce через драйвер файловой системы. Пользователь по-прежнему должен явно решить, когда фиксировать изменения.
  • git документы реализации вызывают git «файловую систему с адресацией по содержанию, поверх которой написан пользовательский интерфейс VCS».
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-18 11:46:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте