Состоялся релиз системы хранения Git LFS 2.4.0 (Git Large File Storage), развиваемой GitHub и позволяющей использовать Git для отслеживания версий больших файлов, содержащих наборы данных, звук, видео и графику. В штатном Git-репозитории большие файлы заменяются на текстовые ссылки, указывающие на контент в отдельном внешнем репозитории, что позволяет избежать повторного копирования файлов при клонировании и извлечении репозитория. При выполнении операций checkout большие файлы не загружаются вместе с остальными данными, а синхронизируются с сервера и хранятся в единственной копии. В рамках проекта подготовлены специальное дополнение к Git, переработанный для эффективной передачи больших данных HTTP-клиент и реализация сервера. Код распространяетсяпод лицензией MIT.
Основные новшества:
- Представлен полностью новый движок (filepath-filter) для обработки масок включения/исключения файлов в хранилище, связанных с опциями "--include" и "--exclude". В новом движке появилась возможность указания диапазонов и классов символов.
- Унифицированы индикаторы прогресса выполнения операций, которые теперь основаны на одном коде и соответствуют стилю Git:
~/example (master) $ git lfs prune prune: 13 local object(s), 3 retained" prune.log prune: Deleting objects: 80% (8/10), done" prune.log
- Приведёт в порядок индикатор прогресса загрузки объектов Git LFS, убрано упоминание о пропущенных объектах и выведена информация о средней скорости загрузки:
~/Desktop $ git lfs clone git@github.com:ttaylorr/example.git Cloning into 'example'... # ... Downloading LFS objects: 40% (55/136), 96 MB | 15 MB/s
- Обеспечено включение любых связанных ссылок в составе запросов к API, что в будущем планируется использовать для предоставления возможности применения Git LFS для совершения pull-запросов;
- В команду "git lfs ls-files" добавлены новые опции '--all', '--include', '--exclude' и '--size', а также обеспечен показ прокэшированных LFS-объектов;
- В команду "git lfs migrate" добавлена опция '--skip-fetch' для миграции в offline-режиме и обеспечена возможность применения префикса '^' в аргументах c refspeс.