Birkaç gün önce , dallanma ve birleştirmeye dayalı esnek doğrusal olmayan geliştirme araçları sağlayan, en popüler, güvenilir ve yüksek performanslı sürüm kontrol sistemlerinden biri olan Git'in yeni sürümü 2.3'ün yayınlandığı duyuruldu .
Önceki sürüme kıyasla, 85 geliştiricinin katılımıyla hazırlanan yeni sürümde 679 değişiklik yapıldı ; bu geliştiricilerden 23'ü ilk kez geliştirme sürecine katıldı.
Git 2.31'in öne çıkan özellikleri
Git 2.31'in bu yeni sürümü, cron'u desteklemeyen sistemlerde periyodik bakım yapılmasına olanak tanıyan " git maintenance" komutunu içeriyor . Örneğin, bu yeni komutla, depo paketleme işleminin periyodik olarak başlamasını planlayabilir ve birden fazla komut çalıştırıldıktan sonra otomatik olarak paketleme yapıldığında depo kilidinin tamamlanmasını bekleme ihtiyacını ortadan kaldırabilirsiniz.
Bir diğer önemli değişiklik ise paket dosyaları için disk üzerinde ters indeks (revindex) tutma desteğinin eklenmesidir . Git, tüm verileri ayrı dosyalarda saklanan nesneler olarak depolar. Depo ile çalışma verimliliğini artırmak için bu nesneler daha da düzenlenerek paket dosyaları oluşturulur ve bilgiler birbirini takip eden bir nesne akışı olarak sunulur.
Her paket arşivi için, nesne tanımlayıcısının, nesnenin paket arşivi içindeki konumunu hızlı bir şekilde belirlemek için kullanılmasını sağlayan bir indeks dosyası (.idx) oluşturulur. Git 2.31'de önerilen ters indeks (.rev) , bir nesnenin paket arşivi içindeki konumuna ilişkin bilgilerden nesne tanımlayıcısını belirleme sürecini optimize etmeyi amaçlamaktadır .
Daha önce, bu dönüştürme işlemi paket dosyasının ayrıştırılması sırasında anlık olarak gerçekleştiriliyor ve yalnızca bellekte saklanıyordu; bu da bu indekslerin yeniden kullanılmasına izin vermiyor ve her seferinde indeksin yeniden oluşturulmasını gerektiriyordu. İndeks oluşturma işlemi, nesne konum çiftlerinden oluşan bir dizi oluşturmaya ve bunları konuma göre sıralamaya indirgenir ; bu da büyük paket dosyaları için çok zaman alıcı olabilir.
Ayrıca, commit grafiği dosya formatının görünümüne dayalı performans optimizasyonlarının eklendiğini , bunun da commit'lerle ilgili bilgilere erişimi optimize etmek için kullanıldığını ve commit sayısı hakkında yeni verilerin eklendiğini, bu verilerin de commit'lerle ilgili ek işlemleri hızlandırmak için kullanılabileceğini görüyoruz.
Ek olarak, yeni depolarda varsayılan dal adını geçersiz kılma özelliği (init.defaultBranch ayarı) eklendi. Harici depolara erişirken, Git, HEAD'in işaret ettiği dalı doğrulamaya çalışır; yani, harici sunucu varsayılan olarak "main" dalını kullanıyorsa, "git clone" işlemi yerel olarak "main" dalını bulmaya çalışacaktır.
Diğer önemli değişiklikler şunlardır:
- “–disk kullanımı” seçeneği “git rev-list” komutuna eklendi Nesnelerin boyutunun bir özetini görüntülemek için.
- Kullanımdan kaldırılan PCRE1 düzenli ifade kitaplığı desteği kaldırıldı.
- Karma algoritmasından bağımsız hareket ederek kısayolların kullanımını güçlü bir şekilde yasaklama yeteneği sağlanmıştır. Yasaklama, core.abbrev parametresine "hayır" değeri ayarlanarak etkinleştirilir.
- Göreli veya mutlak yolların çıktısını açıkça tanımlamak için git rev-parse komutuna –path-format seçeneği eklendi.
- Bash otomatik tamamlama komut dosyaları, özel "git" alt komutları için tamamlama kuralları eklemeyi kolaylaştırır.
- Standart giriş akışından bağlantıları okumak için “git bundle” komutuna “–stdin” seçeneği eklendi.
- Karşılaştırılan aralığın yalnızca bir tarafını göstermek için “git range-diff” komutuna “–left-only” ve “–right-only” seçenekleri eklendi.
- “–skip-to=” seçeneği eklendi » Kesintiye uğrayan bir oturumu isteğe bağlı bir yoldan devam ettirmek için “git difftool” komutuna gidin.
- Geliştiriciler arasındaki çatışmaların çözümüne yönelik temel ilkeleri tanımlayan Davranış Kuralları (Davranış Kuralları), sürüm 2.0'a güncellendi (daha önce sürüm 1.4 kullanılıyordu).
Son olarak, konu hakkında daha fazla bilgi edinmek isterseniz aşağıdaki bağlantıyı inceleyebilirsiniz .