Mengapa git sangat lambat dengan file besar?

8

Saya mencoba menggunakan git untuk mengelola gambar saya (backup / ambil foto). Seluruh perpustakaan beberapa GB. Sebagian besar file adalah JPG 2-3M. Ketika saya menambahkan file ke dalam repositori, sepertinya butuh beberapa hari. Pemanfaatan CPU selalu dekat 100%.

Apakah ada alasan mengapa git harus lambat pada file besar?

ps Saya tahu git tidak dirancang untuk ini.

kayu
sumber

Jawaban:

7

Git secara default mengkompres file. JPEG secara default sudah dikompresi. Bukannya itu file besar, itu file terkompresi.

Anda akan melihat efek yang sama menambahkan file ZIP ke repositori git.

EDIT: Ada utas menarik di https://stackoverflow.com/questions/7102053/git-pull-without-remotely-compressing-objects tentang kompresi.

Komunitas
sumber
1
Bagaimana saya bisa memberi tahu git untuk tidak mengkompres file? Saya tidak perlu efisiensi ruang. Saya ingin itu secepat mungkin. Terima kasih!
woodings
2
Ada sejumlah sakelar yang dapat Anda gunakan untuk bermain git config, termasuk core.compressiondan pack.window. Melihat saya belum pernah benar-benar mencoba menjalankan git tanpa kompresi, YMMV. Silakan kirim apa yang Anda temukan, untuk membantu kami semua belajar dari pengalaman Anda.
@ Eroen, Anda membuat poin yang bagus. Saya memilih komentar Anda.
2
Git juga membuat (dan memeriksa) sha1 hash dari setiap file setiap kali menggunakannya, yang dapat memakan waktu juga untuk file besar.
Eroen
3
@ RandolphWest: Bagus, tapi salah. kompresi zlib dapat dimatikan oleh $ git set core.compression 0. sha1 adalah puluhan MiB per detik, tetapi mereka mungkin mengganggu buruk dengan kondisi memori rendah.
Eroen