2012-04-02 11 views
5

Git projelerimden birinde, bir dizi java kitaplığı içeren bir zip dosyasına sahibim. Zip dosyası 4.5MB ve 11 dosya içeriyor. İçerdiği kütüphanelerden sadece biri düzenli olarak değiştiriliyor, üzerinde çalıştığım (50 KB sırasına göre). Diğer kütüphaneler statiktir.Git, dosyalardan yalnızca birinin düzenli olarak değiştiği bir zip arşivini akıllıca işler mi?

Git akıllıca yalnızca zip dosyasındaki bu küçük değişikliği değiştirirse ve tüm zip dosyasını her işlemle değiştirmezse harika olurdu. Else, git depomuz çok hızlı büyüyecek.

Kitaplığımı güncellediğimde ve zip dosyasını yeniden oluşturduğumda ve değişiklikleri + ekleme işlemini başlattığımda, gitmenin nesneleri < 100KB sırasına göre sunucuya yazdığını, örneğin "Yazma nesneleri:% 100 (58)/58), 77.64 KiB, bitti. ". Bu yüzden git zekice sadece fermuarın değiştirilmiş kısmını gönderir ve tekrar tekrar 4.5MB zip dosyası değil gibi görünüyor.

Git gerçekten zip dosyalarını akıllıca işliyor mu?

cevap

5

Git, ikili dosyalarda nasıl farklı işlem yapılacağını bilir; bu nedenle, birkaç dosya zipte değiştiyse, dosyanın tamamını her bir işlemde saklamaz.

Bir yan not olarak, yalnızca arşivinizi depolayan bir depo olmadığı sürece kodunuzun bir artefaktının (yani bir derleme sonucu) olması muhtemel olduğundan, deponuzu zip deposuna kaydetmenizi önermem.

+0

Bu mantıklı, bu harika. Bir kaynak veri deposunda ikili dosyaların depolanması konusunda haklısınız. Ancak, her zaman güncel olan (ikili dosyaları elle güncellemek ve yüklemek yerine) kolay indirilebilir bir ikili sunmak istiyorum. –

+0

O zaman git kancaları ve betikleri için bir şans verin :) – CharlesB