Неглубокий И Разреженный GIT Репозиторий Клон - PullRequest
0 голосов
/ 27 сентября 2018

У меня мелкий клонированный git-репозиторий, размер которого превышает 1 ГБ.Я использую разреженную проверку для необходимых файлов / каталогов.

Как я могу уменьшить клон репозитория только до разреженных файлов / каталогов проверки?

Изначально я мог ограничить клонированное хранилище толькоразреженная проверка путем отключения проверки при клонировании.Затем настройте разреженную проверку перед выполнением начальной проверки.Это ограничивало хранилище только до 200 МБ.Гораздо более управляемым.Однако обновление информации об удаленной ветке в будущем приведет к тому, что остальные файлы и каталоги будут включены в клон репозитория.Отсылаю размер клона репо обратно более чем на 1 ГБ, и я не знаю, как просто разбросать файлы и каталоги для проверки.

Короче говоря, я хочу получить мелкую И разреженный репозиторий клон .Не просто редкая проверка мелкого репо-клона.Полное репо - это пустая трата пространства и производительность для определенных задач.

Надеюсь, что кто-то может поделиться решением.Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

Мелкий и разреженный означает «частичный» или «узкий».

Частичный клон (или «узкий клон») теоретически возможен и впервые был реализован в декабре 2017 года с помощью Git 2.16, как * 1003.* видел здесь .
Но:

Тодалее оптимизирован в Git 2.20 (Q4 2018), так как в частичном клоне, который будет лениво гидратироваться из исходного хранилища, мы обычно хотим избежать "существует ли этот объект (локально)?"на объектах, которые мы намеренно пропустили при создании (частичного / разреженного) клона.
Однако путь к коду дерева кеша (который используется для записи объекта дерева из индекса) настаивал на том, что объект существует, даже для путей, которыенаходятся за пределами зоны частичной проверки.
Код был обновлен, чтобы избежать такой проверки.

См. commit 2f215ff (09 октября 2018) Джонатан Тан (jhowtan) .
(Объединено с Junio ​​C Hamano - gitster - in commit a08b1d6 , 19 октября 2018 г.)

cache-tree: пропустить некоторые проверки больших двоичных объектов в частичном клонировании

В частичном клоне при возникновении разреженной проверки проверяется наличие всех больших двоичных объектов в индексе, независимо от того, являются ли онивключается или исключается спецификацией .git/info/sparse-checkout.
Это значительно снижает производительность, потому что ленивая выборка происходит всякий раз, когда проверяется наличие отсутствующего большого двоичного объекта.

...