Я провел некоторое исследование литературы по файловым системам версий. Версии уже были обычной практикой в самых ранних операционных системах, таких как влиятельная, но почти забытая система несовместимых тайм-панелей (ITS) и TENEX. OpenVMS, преемник TENEX, по-прежнему используется в специальных приложениях и по-прежнему поддерживает управление версиями. Я нашел ряд экспериментальных и исторических файловых систем с версиями (см. ext3cow FAQ). Но ни одна из основных операционных систем (Linux, Windows, Mac OS) не поддерживает версию по умолчанию.
Почему современные операционные и файловые системы не поддерживают функцию, доступную 40 лет назад? Конечно, вы можете каким-то образом взломать версии в свои системы, но это должно поддерживаться на самом базовом уровне, прозрачном для приложений. Просто уточнить: средства журналирования и моментального снимка (например, Apple TimeMachine) не совпадают. Версии на уровне файловой системы означают: каждый процесс, который модифицирует файл, автоматически запускает создание новой версии, с которой вы можете напрямую обращаться к следующим словам (например, для отмены процесса). Вы можете реализовать это дешево с копированием на запись.
Единственное современное приложение файловой системы версий, которое я нашел, - это версия в Amazon S3, которую они представили несколько месяцев назад. Почему так мало файловых систем версий? Что случилось с развитием компьютерных систем? Неужели версия вообще плохой идеей?