Что означает «фильтрация контента» при выполнении git-клона? - PullRequest
0 голосов
/ 15 ноября 2018

Я клонировал git-репо и заметил строку состояния Filtering content, которая была очень медленной. Это обычно не появляется. Что это?

remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 16592 (delta 6), reused 9 (delta 4), pack-reused 16562
Receiving objects: 100% (16592/16592), 14.14 MiB | 1.01 MiB/s, done.
Resolving deltas: 100% (7529/7529), done.
Checking out files: 100% (11475/11475), done.
Filtering content:   6% (115/1729), 390.32 MiB | 1.12 MiB/s

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

В git вы можете определить «фильтры», которые влияют на процесс перемещения файлов из индекса в рабочее дерево (фильтры «пятно») и из рабочего дерева в индекс («чистые» фильтры). Обычно вы найдете файл .gitattribute, который связывает фильтры с файлами по определенным путям.

Раньше это всегда обрабатывалось файл за файлом во время операций checkout или add. Может быть более эффективно обрабатывать все фильтры «smudge» для извлечения более пакетным способом, и git добавил поддержку для этого относительно недавно.

Вариант использования, который (я считаю) привел к тому, что дополнение называется LFS. В LFS большой контент хранится во вторичном репо, а небольшие репозитории («файлы-указатели») заменяют их в основном репо. Фильтр «smudge» загружает реальный контент и помещает его вместо файла указателя. Это наиболее вероятно, что делает ваше репо, и это может быть длительным процессом.

В целом, однако, строка состояния «фильтрация» просто означает, что пакет извлекаемых фильтров запускается на извлеченном котенте.

0 голосов
/ 15 ноября 2018

В репозитории используется Git LFS, расширение git для управления версиями больших файлов вместе с репозиторием git.

https://git -lfs.github.com / https://github.com/git-lfs/git-lfs/

...