Система контроля версий Epic Games с открытым исходным кодом
Компания Epic Games открыла исходный код Lore — новой системы контроля версий, разработанной для крупномасштабных проектов, в которых исходный код сочетается с большими двоичными объектами, такими как игры и рабочие процессы в сфере развлечений.
Lore решает проблемы, с которыми сталкиваются традиционные системы контроля версий при работе с очень большими репозиториями, содержащими множество двоичных файлов. В проектах по разработке игр исходный код сочетается с текстурами, моделями, аудио, видео и другими крупными ресурсами.
Эти файлы отличаются от обычного текстового исходного кода, который преобладает в традиционных репозиториях Git. По мере роста команд и репозиториев эффективное хранение, синхронизация и ветвление становятся все более сложными задачами.
Решение Epic — это централизованная система контроля версий с адресацией по содержимому. Lore хранит данные репозитория по хешу содержимого и представляет состояние репозитория с помощью деревьев Меркла и неизменяемой цепочки ревизий. Это позволяет повторно использовать данные в истории и ветках, обеспечивая при этом проверку целостности и достоверный источник информации.
Система использует блочное хранение для больших файлов, что позволяет разбивать их на части, которые можно использовать повторно, вместо того чтобы дублировать файлы целиком при каждом изменении. Это снижает требования к объему хранилища и повышает эффективность передачи при работе с большими двоичными объектами.
Еще одна ключевая функция — гидратация по запросу и разреженные рабочие пространства. Lore не требует от пользователей предварительной загрузки всех файлов из репозитория, а загружает их только при необходимости.
Lore поддерживает легковесные ветки и быстрое переключение, реализуя ветки в виде изменяемых ссылок, а не полных копий данных. Система предлагает полный набор функций через интерфейс командной строки и предоставляет API для интеграции с C/C++, C#, Rust, Go, Python и JavaScript.
Lore уже интегрирована в качестве встроенной системы контроля версий для UEFN — редактора Unreal для Fortnite. Однако инструменты с открытым исходным кодом в настоящее время не могут взаимодействовать с версией UEFN, поскольку UEFN использует собственный формат сжатия, который, по словам Epic, не может быть включен в версию с открытым исходным кодом.
Epic работает над тем, чтобы перевести UEFN на тот же открытый формат сжатия, который используется в проекте Lore с открытым исходным кодом. Это должно в конечном итоге устранить разрыв между двумя форматами. До тех пор публичная версия Lore и реализация UEFN будут существовать отдельно друг от друга.
При установке Linux используется установщик командной оболочки, который запускает Lore в демонстрационном режиме, позволяя пользователям создать локальный сервер и протестировать систему без полноценного развертывания.
Наконец, имейте в виду, что Lore — это проект на ранней стадии развития, ориентированный на конкретную целевую аудиторию: команды, работающие с большими репозиториями, крупными активами и рабочими процессами, для которых возможностей Git может быть недостаточно. Для стандартных проектов с исходным кодом по-прежнему рекомендуется использовать Git.
Проект доступен на GitHub под лицензией MIT. Lore написан преимущественно на языке Rust и на данный момент имеет версию 0.8.3, что указывает на то, что это ранняя версия, предшествующая 1.0, и она еще не готова заменить существующие системы.
Редактор: AndreyEx