Birkaç gün önce açıklandı Git 2.50 projesinin yeni sürümünün yayınlanması, 600'den fazla değişiklik tanıtıldı Bu kez 98 yeni katılımcı da dahil olmak üzere 35 geliştiricinin yer aldığı aktif bir topluluk tarafından yönetiliyor.
Git 2.50'nin bu yeni sürümü, yeni komutların (git-diff-pairs), temizleme, filtreleme ve bakım için yeni işlevlerin, özyinelemeli birleştirme motorunun ORT ile değiştirilmesinin yanı sıra performans iyileştirmeleri ve hata düzeltmeleriyle öne çıkıyor.
Git 2.50'in öne çıkan özellikleri
Git 2.50'nin bu yeni sürümünde en önemli yeni özelliklerden biri "çöp paketleri" olarak adlandırılanların tedavisinde optimizasyon, Yani, erişilemeyen veya dallar veya etiketler tarafından başvurulmayan nesne paketleri. Geleneksel olarak, Git bu nesneleri tek bir büyük paket dosyasında depolardı ve bu, bu öğelerin birçoğunun bulunduğu depoları yeniden paketlerken performans sorunlarına neden olabilirdi.
Yeni versiyonla birlikte, Git, bu gereksiz paketleri birkaç küçük dosyaya bölmenize olanak tanır, disk kullanımını azaltır ve toplu işlemler için giriş/çıkış performansını iyileştirir. Ek olarak, sve –combine-cruft-below-size seçeneğini girinsağlayan küçük paketleri daha esnek bir şekilde birleştirin Önceki –max-cruft-size seçeneğinden daha fazla, birleşik dosya boyutuna bir sınır koymadan. Bu yeni özellik, özellikle birden fazla pakete yayılmış yetim nesnelere sahip projelerde faydalıdır.
Büyük ölçekli depoları hedefleyen bir diğer iyileştirme ise; için deneysel destek artımlı güncelleme MIDX endeksleri , hangi Nesneler hakkında bilgileri ayrı katmanlarda depolarlar yeni commit'ler eklendikçe daha hızlı güncellemelere olanak tanıyan bitmap dosyaları kullanarak. Bu ilerleme, meta verileri tamamen yeniden oluşturmak zorunda kalmadan hızlı dizinleme işlemleri gerektiren büyük depolar için kritik öneme sahiptir.
Tekrarlayan birleştirme motorunun ORT ile tamamen değiştirilmesi
Git 2.50, şu konuda önemli bir değişiklik getiriyor: tekrarlayan füzyon motorunun kalıcı olarak kaldırılması geleneksel. Bunun yerine, ORT kullanımı konsolide edildida yardımcı olur. daha modern, bakımı kolay ve verimli bir füzyon motoru. ORT yalnızca daha kesin bir çatışma analizi sunmakla kalmaz, aynı zamanda ek nesneler üretmeden birleştirmenin mümkün olup olmadığını doğrulamanıza da olanak tanır. Ayrıca, merge-tree komutu artık deponun değiştirilmesine gerek kalmadan sessiz birleştirme denetleyicisi olarak kullanılmak üzere –quiet seçeneğini içerir.
gitt-diff-pairs: ölçeklenebilirlik sorunlarına çözüm
Kod incelemesi şüphesiz modern işbirlikçi geliştirmenin temellerinden biridir ve revizyonlar arasındaki farklar veya farklılıklar bu süreçte önemli bir rol oynar. Git 2.50'nin gelişiyle birlikte ölçeklenebilirlik için tasarlanmış bir çözüm tanıtıldı: yeni git-diff-pairs komutu.
Geleneksel olarak, iki revizyon arasında karşılaştırma yapmak için şu komutu kullanırsınız:
git diff HEAD~1 HEAD
Bu, listelenen revizyonlar arasındaki tüm değişiklikleri içeren eksiksiz bir yama oluşturur. Birçok durumda etkili olsa da, büyük değiştirilmiş dosya kümeleriyle uğraşırken bir performans sorunu olabilir.
İşte bu yüzden git-diff-pairs, doğrudan git diff-tree çıktısından ham girdiyi almak ve karşılık gelen yamaları verimli ve doğru bir şekilde üretmek için özel olarak tasarlanmıştır.
Kullanımı ise şu kadar basittir:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Bu komut, sağlanan blob çiftlerini alır ve bağlamsal bilgileri koruyarak ve işin daha küçük gruplara bölünmesine izin vererek tam diff çıktısını üretir. Bu, paralel işlemeye kapı açar, kaynak verimliliğini artırır ve GitLab gibi diff tabanlı araçlarda ölçeklenebilirliği kolaylaştırır.
Temizlik, filtreleme ve bakım için yeni özellikler
Git 2.50, depo bakımını iyileştirmek için tasarlanmış birkaç ek araç içeriyor:
- Komut eklendi git reflog bırak, belirli bir dal için reflog'u tamamen silmenize olanak tanır ve artık önceki referansları tutmanıza gerek kalmadığında çalışma geçmişinizi temizlemek için idealdir.
- Seçimi –filtre cat-file –batch komutu artık git'te mevcut ve sonuçları nesne türüne göre filtrelemenize olanak sağlıyor.
Ayrıca, birkaç dahili iyileştirme de vurgulanıyor:
- Önek önbelleğe alma ve gereksiz denetimlerin azaltılmasıyla sembolik bağlantıların kullanımı iyileştirildi.
- Dokümantasyon ve test scriptlerindeki Perl bağımlılıklarının kaldırılması, bunların kabuk fonksiyonları veya C uygulamalarıyla değiştirilmesi, minimal konfigürasyonlara sahip sistemlerde derlenmelerinin kolaylaştırılması.
- Bir kontrolör dahil kullanıcıfarkı .ini dosyalarındaki farklılıkların analizi için.
- Git send-email komutunun Outlook gibi SMTP sunucularıyla uyumluluğu iyileştirildi.
Son olarak, bu konuda daha fazla bilgi edinmek istiyorsanız, aşağıdaki ayrıntılara başvurabilirsiniz. aşağıdaki bağlantı.