Чому git так повільний для великих файлів?


8

Я намагався використовувати git для управління своїми фотографіями (резервне копіювання / фотографування). Вся бібліотека - кілька Гб. Більшість файлів - це JPG-файли розміром 2-3М. Коли я додавав файли в сховище, здавалося, це зайняло кілька днів. Використання процесора завжди було майже 100%.

Чи є причина, чому git має бути повільним на великих файлах?

ps Я знаю, що git не призначений для цього.

Відповіді:


7

Git за замовчуванням стискає файли. JPEG за замовчуванням уже стиснуті. Це не великі файли, це стислі файли.

Ви помітите той же ефект, додавши ZIP-файли до сховища git.

EDIT: На /programming/7102053/git-pull-without-remotely-compressing-об'єкти про стиснення є цікава тема .


1
Як я можу сказати git не стискати файли? Мені не обов’язково потрібна космічна ефективність. Я хочу, щоб це було якомога швидше. Дякую!
Вундінг

2
Є безліч комутаторів, з якими можна грати git config, включаючи core.compressionта pack.window. Бачачи, як я ніколи насправді не намагався запустити git без стиснення, YMMV. Будь ласка, опублікуйте те, що ви відкрили, щоб допомогти нам усім засвоїти свій досвід.

@Eroen, ти добре зазначаєш. Я проголосував за ваш коментар.

2
Git також робить (і перевіряє) ша1 хеш кожного файлу кожного разу, коли він його використовує, що також може зайняти деякий час для великих файлів.
Eroen

3
@RandolphWest: Добре, але неправильно. стиснення zlib можна відключити $ git set core.compression 0. sha1 - це десятки MiB в секунду, але вони можуть погано перешкоджати низьким умовам пам'яті.
Ероен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.