Programlama ve Yazılım Geliştirme

Git 2.56, çakışma çözümünün güvenliğini artırıyor ve büyük depolardaki işlemleri hızlandırıyor

Git projesi, 104’ten fazla geliştiricinin katkılarıyla Git 2.56.0 sürümünü yayımladı. Sürüm, birleştirme çakışmalarının çözülmesinden sonra dosyaları hazırlamak için daha güvenli bir yöntem, birleştirme tabanlarının hesaplanması ve depoların yeniden paketlenmesi için önemli iyileştirmeler sunuyor. Ayrıca geçmişi, dalları ve kısmi klonları yönetmek için yeni araçlar ile kapsamlı performans düzeltmeleri içeriyor.

2026-09-28
4 dk okuma
1 görüntülenme
certi.news Editorial Team
Git 2.56, çakışma çözümünün güvenliğini artırıyor ve büyük depolardaki işlemleri hızlandırıyor

Açık kaynaklı Git projesi, 39’u yeni katkıcı olmak üzere 104’ten fazla kişinin katkılarıyla Git 2.56.0 sürümünü 28 Eylül 2026’da yayımladı. Sürüm; birleştirme hatalarının risklerini azaltmaya, büyük depoların ve kod barındırma hizmetlerinin dayandığı işlemleri hızlandırmaya odaklanıyor.

Diğer değişikliklere dokunmadan çakışmaları hazırlama

Git 2.56, yalnızca çakışma durumunda bulunan dosyaları işlemek için git add --resolved kipini ekliyor. git add -u gibi komutların aksine, yeni kip değiştirilmiş tüm izlenen dosyaları eklemeye çalışmıyor; böylece birleştirme işlemiyle ilişkili olmayan yerel değişiklikler korunuyor.

Git, hazırlama işleminden önce birleştirilmemiş metin dosyalarında çakışma işaretlerinin kalıp kalmadığını denetliyor. Herhangi bir belirtilen dosyada bir işaret bulursa, işlemin bir bölümünü hazırlamak yerine dizini değiştirmeden bırakıyor. İşlem pathspec kullanılarak sınırlandırılabilir. Silme işlemleri ve ikili çakışmalar ise metinsel işaretler içermedikleri için normal şekilde işleniyor.

Birleştirme tabanlarını bulmayı hızlandırma

Sürüm, birleştirme işlemlerinin, üç noktalı farkların ve çekme isteği karşılaştırmalarının kullandığı, commit’ler arasındaki en iyi ortak ataları arama algoritmasını iyileştiriyor. Git, arama kuyruğundaki özel taraflardan biri tükendiğinde duruyor; çünkü bu durumda yeni bir birleştirme tabanı ortaya çıkamıyor.

Büyük bir monorepo durumunda yapılan değişiklik, işlem süresini 0,68 saniyeden 0,01 saniyeye düşürdü. İki büyük depoda yapılan üretkenlik değerlendirmeleri de birinde yaklaşık 70 kat, diğerinde ise ortalama yaklaşık 20 kat iyileşme kaydetti. Ayrıca Linux çekirdeğiyle ilişkili bir durumda git merge-base --all v4.8 v4.9 işlemi 167.441 adım ve 0,29 saniyeden 3.887 adım ve 0,01 saniyeye indi.

Kod barındırma hizmetleri için daha küçük yeniden paketleme

Git 2.56, depoda birbirine yakın dosya nesnelerini bir araya getirerek sıkıştırmayı iyileştiren bir teknik olan yol tabanlı yeniden paketlemenin kullanımının önündeki iki engeli kaldırıyor. Fluent UI deposunun bir kopyası üzerinde yapılan testte depolama paketi boyutu, geleneksel yeniden paketlemeyle 558,5 megabayttan --path-walk kullanılarak 164,4 megabayta düştü; bu, yaklaşık %71’lik bir azalma anlamına geliyor.

Bu yöntem artık erişilebilirlik haritaları ve fark adacıklarıyla uyumlu. Böylece barındırma hizmetleri mevcut hizmet ve yalıtım mekanizmalarını korurken depolama tasarruflarını değerlendirebiliyor. Ancak bu özellik varsayılan olarak etkin değil ve tüm depolar için otomatik bir dönüşüm anlamına gelmiyor.

Ek araçlar ve pratik iyileştirmeler

  • Deneysel git history drop komutu, bir commit’i silip ondan sonraki commit’leri yeniden oynatıyor. Çakışmalar, kök commit’ler ve birleştirme işlemleriyle ilgili kısıtlamalar devam ediyor.
  • git refs komutu, eski değerler üzerinden compare-and-swap korumasını destekleyerek referansların oluşturulması, güncellenmesi, silinmesi ve yeniden adlandırılması işlemlerini birleştiriyor.
  • git branch --delete-merged, izleme dallarına göre birleştirilmiş dalların toplu olarak silinmesini sağlıyor; önizleme seçeneği ve belirli dalları koruma desteği sunuyor.
  • git bisect run --reset-when-found, arızaya neden olan commit bulunduğunda durumu otomatik olarak sıfırlıyor.
  • git repack komutu, kısmi klonlarda geri alınan büyük ikili nesneleri elle kaldırabiliyor; gerektiğinde güvenilir sunucudan getirilebilmeleri mümkün olmaya devam ediyor.
  • git log --follow, doğrusal olmayan geçmiş boyunca yolların yeniden adlandırılmasını daha iyi izliyor ve birden çok köke sahip grafiklerin görüntülenmesini iyileştiriyor.

Bu sürüm neden önemli?

Git 2.56’nın pratik değeri yalnızca yeni komutlarla sınırlı değil; sürüm, geliştiricilerin ve depo yöneticilerinin çalışmalarındaki doğrudan sorun noktalarını ele alıyor. git add --resolved kipi, istenmeyen değişikliklerin dahil edilmesi olasılığını azaltırken birleştirme tabanları ve yeniden paketlemeyle ilgili iyileştirmeler büyük depolardaki zaman ve depolama maliyetlerini hedefliyor. Bununla birlikte bazı araçlar, özellikle geçmiş yönetimi ve kısmi klonlardaki nesnelerin temizlenmesi komutları, deneysel veya elle kullanılıyor. Bu nedenle bunlar otomatik politikalar ya da mevcut iş akışının koşulsuz alternatifleri olarak değerlendirilmemeli.

Sürüm, Git projesinin yalnızca son kullanıcıya yönelik komutlar eklemekle kalmayıp algoritmalar ve iç yapılar düzeyinde performansı geliştirmeyi sürdürdüğünü gösteriyor. Sürüm ayrıntıları, deneysel özellikleri üretim ortamlarında kullanıma almadan önce kalan değişiklikleri gözden geçirmek için Git 2.56’nın eksiksiz notlarına başvurulmasını öneriyor.

Haber kaynağı
c
Yazar

certi.news Editorial Team

Aynı kategoride

Bunlar da ilginizi çekebilir

Tüm haberleri gör