Git LFS
Arkvory хранит большие файлы git-репозиториев (Git LFS) и блокировки файлов, нужные проектам Unity и Unreal. Сам git-репозиторий остаётся там, где был (GitHub, GitLab, Gitea), а объекты LFS лежат в репозитории Arkvory с его правами, квотами, проверкой SHA-256, резервными копиями и зеркалами. Решение и границы — ADR 0065.
Подключение репозитория
В корне git-репозитория — файл .lfsconfig; его коммитят, и он работает у всей команды:
[lfs]
url = https://arkvory.example/lfs/games
[lfs "https://arkvory.example/lfs/games"]
locksverify = truegit-lfs читает locksverify не из общей секции [lfs], а по ключу с адресом сервера lfs.<url>.locksverify, где <url> совпадает с lfs.url. Если git-lfs не подхватил её из .lfsconfig, задайте в локальной конфигурации: git config lfs.https://arkvory.example/lfs/games.locksverify true.
games — репозиторий Arkvory. При первом обращении git спросит учётные данные: имя любое, пароль — ключ Arkvory (персональный токен пользователя или сервисный ключ для CI). Git Credential Manager запомнит их. Ключ только для чтения позволяет clone и pull. Для push и блокировок нужны права записи.
Перенос существующего репозитория: настроить lfs.url, затем git lfs push --all origin, чтобы загрузить уже существующие объекты.
Блокировки
git lfs lock Content/Maps/Level01.umap
git lfs locks
git lfs unlock Content/Maps/Level01.umaplocksverify = true(для адреса сервера, см. выше): передpushgit проверяет, не изменены ли файлы, заблокированные другими.- Владелец блокировки показывается по имени пользователя или сервисного аккаунта.
- Снять чужую блокировку (
git lfs unlock --force) может только тот, у кого есть право удаления артефактов в репозитории. - Unity и Unreal умеют работать с блокировками LFS через свои плагины контроля версий; Arkvory отвечает по стандартному протоколу.
Что учесть
- Нужен HTTPS: git передаёт ключ в каждом запросе.
lfs.urlуказывает на основной (пишущий) шлюз Arkvory, не на шлюз чтения.- Объекты LFS не удаляются политиками хранения: сервер не видит историю git и не может знать, что объект больше не нужен.
- Зеркало Arkvory получает объекты LFS, и
cloneс зеркала работает; блокировки не зеркалируются.