мерзавец без удаленного сжатия объектов - PullRequest
34 голосов
/ 18 августа 2011

У меня есть репозиторий, полный zip-файлов, повторное сжатие этих файлов будет пустой тратой времени.

Я пытался установить core.compression = 0 на удаленной и локальной копии без успеха

git config core.compression 0
git config core.loosecompression 0

git pull все еще делают

remote: Counting objects: 23, done.
remote: Compressing objects: ...

Ответы [ 2 ]

49 голосов
/ 23 августа 2011

Проблема со временем была вызвана дельта-сжатием.

Решение для меня было

echo '*.zip -delta' > .gitattributes
git gc

Я процитирую этот превосходный ответ от http://lists -архивов.com / git / 719515-серьезные проблемы с производительностью-с-изображениями-аудио-файлами-и-другими-не-code-data.html

Git тратит немало временивремя в zlib для некоторых рабочих нагрузок, но оно не должно создавать проблем порядка минут.

Для операций push-up и pull вы, вероятно, видите дельта-сжатие, которое может быть медленным для больших файлов

core.compression 0 # Похоже, не работает.

Это должно отключить сжатие zlib незакрепленных объектов и объектов в пакетных файлах.Это может сэкономить немного времени для объектов, которые не будут сжиматься, но вы потеряете преимущества размера для любых текстовых файлов.

Но это не отключит дельта-сжатие, что и является «сжатием»."фаза во время пуш-пул делает.И что является гораздо более вероятной причиной замедления.

pack.window 0

Устанавливает количество других объектов, которые git будет учитывать при выполнении дельта-сжатия.Низкое значение должно улучшить время пуш-пул.Но вы потеряете существенное преимущество дельта-сжатия ваших файлов, не относящихся к изображениям (и мета-объектов git).Поэтому указанная выше опция -delta для конкретных файлов является гораздо лучшим решением.

echo '* .jpg -delta'> .gitattributes

Также рассмотрите возможность переупаковкиваш репозиторий, который сгенерирует упаковочный файл, который будет повторно использоваться во время push-pull.

Обратите внимание, что настройки должны быть выполнены для репо, из которого вы извлекаете / извлекаете, а не из того, который выберутся к себе.

8 голосов
/ 18 августа 2011

Строка compressing object означает, что она выполняет pack работу. Это включает в себя различные деревья и прочее. Это не «сжатие» в смысле core.compression.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...