Компания Epic Games открыла исходный код централизованной системы управления версиями Lore. Ранее этот инструмент был известен как Unreal Revision Control и входил в состав Unreal Editor for Fortnite (UEFN). Система специально оптимизирована для разработки крупных проектов, в которых программный код соседствует с тяжелыми нетекстовыми данными — например, 3D-моделями, текстурами и аудиофайлами.
Работа с нетекстовыми ресурсами зачастую затрудняет привычное слияние версий, поэтому в Lore реализована модель эксклюзивных блокировок. Она предотвращает одновременное редактирование одного и того же объекта несколькими участниками команды. Код системы написан на языке Rust и опубликован под свободной лицензией MIT.
Архитектура и масштабируемость
Lore проектировалась с учетом масштабируемости: её можно использовать как локально, запустив единственный исполняемый файл без сторонних зависимостей, так и в формате централизованного сервера для крупных студий. Технически продукт состоит из двух основных компонентов: подсистемы хранения данных и движка управления версиями, который координирует создание веток, ревизий и операции слияния.
Подсистема хранения разделена на две части:
- Immutable-хранилище (постоянное): данные здесь адресуются по хэшам, что обеспечивает высокую надежность.
- Хранилище ключ-значение: предназначено для метаданных, таких как указатели на ветки.
Для обеспечения отказоустойчивости на серверном уровне Lore поддерживает подключение различных бэкендов. Например, для постоянного хранения контента можно использовать облачные решения вроде AWS S3, а для работы с метаданными — базы данных типа DynamoDB.
Технологии контроля целостности
Для отслеживания состояния репозитория и защиты истории изменений разработчики применили структуру «дерева Меркла» (Merkle Tree). Благодаря древовидному хешированию каждая ветка верифицирует все нижележащие узлы. Поскольку данные адресуются по хэшам содержимого, система легко проверяет целостность проекта и быстро сравнивает изменения. Для эффективной работы с большими файлами Lore автоматически разбивает их на фрагменты.
Ключевые возможности
Система поддерживает базовые функции, знакомые пользователям Git, включая коммиты, создание веток и использование staging-областей. Кроме того, Lore предлагает ряд продвинутых инструментов:
- разграничение прав доступа для участников команды;
- механизмы разрешения конфликтов;
- дедупликацию данных на уровне отдельных фрагментов;
- возможность работы с неполной копией репозитория (файлы подгружаются «по требованию»);
- локальное кэширование;
- быстрое создание веток через ссылки, исключающее дублирование данных.






