Версий файловой системы является любой компьютер , файловая система , которая позволяет компьютерный файл существует в нескольких версиях , в то же время. Таким образом, это форма контроля версий . Наиболее распространенные файловые системы управления версиями хранят некоторое количество старых копий файла. Некоторые ограничивают количество изменений в минуту или час, чтобы не хранить большое количество тривиальных изменений. Другие вместо этого делают периодические снимки, к содержимому которых можно получить доступ с семантикой, аналогичной обычному доступу к файлам.
Подобные технологии
Резервное копирование
Файловая система с контролем версий похожа на периодическое резервное копирование с несколькими ключевыми отличиями.
- Резервное копирование обычно запускается по расписанию, а управление версиями происходит при изменении файла.
- Резервное копирование обычно выполняется в масштабе всей системы или раздела, а управление версиями выполняется независимо для каждого файла.
- Резервные копии обычно записываются на разные носители, тогда как файловые системы управления версиями записывают на один и тот же жесткий диск (и обычно в одну и ту же папку, каталог или локальный раздел).
По сравнению с системами контроля версий
Файловые системы управления версиями предоставляют некоторые функции систем контроля версий . Однако, в отличие от большинства систем контроля версий, они прозрачны для пользователей и не требуют отдельного шага «фиксации» для записи новой ревизии.
Файловая система журналирования
Файловые системы управления версиями не следует путать с файловыми системами с журналированием . В то время как журналируемые файловые системы работают, ведя журнал изменений, внесенных в файл, до фиксации этих изменений в этой файловой системе (и перезаписи предыдущей версии), файловая система управления версиями сохраняет предыдущие копии файла при сохранении новых изменений. Эти две функции служат разным целям и не исключают друг друга.
Хранилище объектов
Некоторые реализации объектного хранилища предлагают управление версиями объектов, например Amazon S3 .
Реализации
ЭТО
Ранняя реализация управления версиями, возможно, первая, была в ITS Массачусетского технологического института . В ITS имя файла состоит из двух частей по шесть символов; если вторая часть была числовой (состояла только из цифр), она рассматривалась как номер версии. При указании файла, который нужно открыть для чтения или записи, можно указать вторую часть ">"; при чтении это означало открыть версию файла с самым большим номером; при написании это означало увеличение самого высокого существующего номера версии и создание новой версии для записи.
Еще одна ранняя реализация управления версиями была в TENEX , который стал TOPS-20 . [1]
Файлы-11 (RSX-11 и OpenVMS)
Яркий пример системы управления версиями файлов встроен в операционную систему RSX-11 и OpenVMS от Digital Equipment Corporation . По сути, всякий раз, когда приложение открывает файл для записи, файловая система автоматически создает новый экземпляр файла с номером версии, добавленным к имени. Номера версий начинаются с 1 и увеличиваются по мере создания новых экземпляров файла. Когда приложение открывает файл для чтения, оно может либо указать точное имя файла, включая номер версии, либо просто имя файла без номера версии, и в этом случае открывается самый последний экземпляр файла. Команду «очистить» DCL / CCL можно в любое время использовать для управления количеством версий в определенном каталоге. По умолчанию все версии всех файлов в текущем каталоге, кроме самых высоких номеров, будут удалены; это поведение можно переопределить с помощью переключателя / keep = n и / или путем указания путей к каталогам и / или шаблонов имен файлов. В системах VMS часто создаются сценарии для регулярной очистки пользовательских каталогов; Иногда это неверно истолковывается конечными пользователями как свойство системы управления версиями.
Linux
8 февраля 2004 года Киран-Кумар Мунисвами-Редди, Чарльз П. Райт, Эндрю Химмер и Эрез Задок (все из Университета Стоуни-Брук ) предложили приложение, удобное для многих пользователей, тестировавших приложение. Система была разработана с программным обеспечением Linux, поэтому сначала она работала на Linux. [2]
- NILFS - файловая система с журнальной структурой, поддерживающая управление версиями всей файловой системы и непрерывное создание снимков. В этом списке это единственный стабильный продукт, включенный в основное ядро.
- Tux3 - последнее изменение было в 2014 году. [1]
- Next3 - Последнее обновление было в 2012 году.
- ext3cow - Последний выпуск был в 2005 году.
LMFS
Файловая система машины Лиспа поддерживает управление версиями. Это было обеспечено реализациями от MIT, LMI, Symbolics и Texas Instruments. Такой операционной системой была Symbolics Genera .
macOS
Начиная с Lion (10.7), в macOS есть функция под названием « Версии», которая позволяет, как в Time Machine, сохранять и просматривать прошлые версии документов для приложений, написанных для использования версий. Однако эта функциональность реализуется на уровне приложения, а не на уровне файловой системы; [3] Lion и более поздние выпуски не включают настоящую файловую систему управления версиями.
SCO OpenServer
HTFS , принятая в качестве основной файловой системы для SCO OpenServer в 1995 году, поддерживает управление версиями файлов. Управление версиями включается для каждого каталога путем установки бита setuid каталога, который наследуется при создании подкаталогов. Если управление версиями включено, новая версия файла создается при удалении файла или каталога или при открытии существующего файла с усечением. Устаревшие версии остаются в пространстве имен файловой системы под именем исходного файла, но с добавленным суффиксом, состоящим из точки с запятой и порядкового номера версии. Все версии, кроме текущей, скрыты от чтения каталогов (если не установлена переменная среды SHOWVERSIONS), но в остальном версии доступны для всех обычных операций. Переменная среды и общая доступность позволяют управлять версиями с помощью обычных утилит файловой системы, хотя есть также команда «восстановить», которую можно использовать для очистки и восстановления файлов, включения и отключения управления версиями в каталогах и т. Д.
Другие
- В Subversion есть функция, называемая «автоверсия», при которой исходный код WebDAV с серверной частью Subversion может быть смонтирован как файловая система в системах, поддерживающих этот тип монтирования (Linux, Windows и другие), и при сохранении в этой файловой системе создаются новые версии на сервере. система контроля версий. [4]
- Коммерческое ПО Clearcase для управления конфигурацией и контроля версий также поддерживает "MVFS" (многоверсионная файловая система) в HP-UX, AIX и Windows с начала 1990-х годов.
Связанное программное обеспечение
Следующие файлы не используются для управления версиями файловых систем, но допускают аналогичные функции.
- APFS [5] и ZFS поддерживают мгновенные снимки и клоны.
- Btrfs поддерживает снимки. [6]
- HammerFS в DragonFlyBSD имеет возможность хранить изменения в файловой системе.
- NILFS , поддерживающий моментальные снимки .
- Plan 9 «сек Fossil файловая система может обеспечить подобную функцию, принимая периодические снимки (часто почасовой) и сделать их доступными в / п / оснастке . Fossil может навсегда заархивировать снимок в Venti (обычно один снимок каждый день) и сделать его доступным в / n / dump . Если в течение интервала между моментальными снимками в файл было внесено несколько изменений, в следующий моментальный снимок будет записан только самый последний.
- Write Anywhere File Layout - решения NetApp для хранения данных реализуют файловую систему под названием WAFL, которая использует технологию моментальных снимков для хранения различных версий всех файлов в томе.
- pdumpfs, созданный Сатору Такабаяши, представляет собой простую систему ежедневного резервного копирования, аналогичную системе / n / dump в Plan 9, реализованной на Ruby . Он функционирует как инструмент для создания снимков, что позволяет скопировать весь каталог в другое место с помощью жестких ссылок. При регулярном использовании это может дать эффект, аналогичный управлению версиями. [7]
- Майкрософт Виндоус
- Теневое копирование - это функция, представленная Microsoft в Windows Server 2003. Теневое копирование позволяет вручную или автоматически создавать резервные копии или моментальные снимки файла или папки на определенном томе в определенный момент времени.
- RollBack Rx - позволяет делать снимки разделов диска. Каждый снимок содержит только различия между предыдущими снимками, и его создание занимает всего несколько секунд. Может надежно использоваться для обеспечения стабильности ОС Windows и / или защиты от вредоносных программ.
- GoBack (производство прекращено) - программное обеспечение GoBack для Windows от Symantec позволяет возвращать файлы, каталоги или диски в предыдущее состояние. Он может записывать максимум 8 ГБ изменений и временно останавливает запись каждого изменения в случае высокой активности ввода-вывода .
- Versomatic - Программное обеспечение Versomatic от Acertant автоматически отслеживает изменения файлов и предварительно архивирует копию файла перед его изменением.
- Cascade File System предоставляет доступ к репозиторию Subversion или Perforce через драйвер файловой системы. Пользователь по-прежнему должен явно решать, когда фиксировать изменения.
- Документы реализации git называют git «файловой системой с адресной информацией, поверх которой написан пользовательский интерфейс VCS». [8]
Смотрите также
- Резервное копирование
- Сравнение программного обеспечения для контроля версий
- Копирование при записи
- Хранилище объектов
Рекомендации
- ↑ Дэниел Г. Боброу, Джерри Д. Берчфил, Дэниел Л. Мерфи, Рэймонд С. Томлинсон, TENEX, Система распределения времени по страницам для PDP-10 ( Сообщения ACM , том 15, стр. 135-143, март 1972)
- ^ Киран Кумар-Muniswamy-Редди, Чарльз П. Райт, Эндрю Химмер и Эрез Садок (8 февраля 2004). «Универсальная и ориентированная на пользователя файловая система управления версиями» . FiST: язык и шаблоны стекируемой файловой системы .CS1 maint: несколько имен: список авторов ( ссылка )
- ^ «Версии файлов Mac OS X Lion, часть 2» . Проверено 28 апреля 2012 года .
- ^ Контроль версий с Subversion: Контроль версий с открытым исходным кодом следующего поколения
- ^ «О файловой системе Apple» . Документация для разработчиков Apple . Проверено 9 июня 2021 .
- ^ http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Моментальные снимки, клоны и исходные устройства, подпункт «моментальные снимки».
- ^ Домашняя страница pDumpFS
- ^ "Внутреннее устройство Git" .
По сути, Git - это файловая система с адресацией по содержимому, поверх которой написан пользовательский интерфейс VCS.
Внешние ссылки
- «Как сделать файловое хранилище» . WikiHow . Проверено 31 июля 2018 года .