Git 2.35 kaynak denetimi sürümü

İki aylık geliştirme sürecinin ardından dağıtılmış kaynak kontrol sistemi Git 2.35 piyasaya sürüldü. Git, 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 biridir. Geçmişin bütünlüğünü ve geriye dönük değişikliklere karşı direnci sağlamak için, her bir taahhütte önceki geçmişin tamamının örtülü karması kullanılır; bireysel etiketleri ve taahhütleri geliştiricilerin dijital imzalarıyla sertifikalandırmak da mümkündür.

Önceki sürümle karşılaştırıldığında yeni sürüm, 494 geliştiricinin katılımıyla hazırlanan ve 93'i ilk kez geliştirmede yer alan 35 değişiklik içeriyordu. Ana yenilikler:

  • Git nesnelerini dijital olarak imzalamak için SSH anahtarlarını kullanma olanakları genişletildi. Birkaç anahtarın geçerlilik süresini sınırlamak için, anahtarın geliştiricilerden biri tarafından döndürülmesinden sonra imzalarla doğru çalışmayı sağlayabileceğiniz "önce geçerli" ve "sonra geçerli" OpenSSH direktifleri desteği eklendi. Bundan önce, eski ve yeni anahtarlarla imzaların ayrılmasıyla ilgili bir sorun vardı - eski anahtarı silerseniz, onunla yapılan imzaları doğrulamak imkansız olacak ve onu bırakırsanız, o zaman mümkün olmaya devam edecektir. Zaten başka bir anahtarla değiştirilen eski anahtarla yeni imzalar oluşturun. Önceki geçerlilik ve sonraki geçerlilik değerlerini kullanarak, imzanın oluşturulduğu zamana bağlı olarak anahtarların kapsamını ayırabilirsiniz.
  • Birleştirme sırasındaki çakışmalarla ilgili bilgileri görüntüleme modunu seçmenize olanak tanıyan merge.conflictStyle ayarında, çatışmanın başında veya sonunda belirtilen tüm standart satırları çatışmanın dışına taşıyan "zdiff3" modu desteği ortaya çıktı Bilginin daha kompakt bir şekilde sunulmasına olanak tanıyan alan.
  • "git stash" komutuna "--staged" modu eklenmiştir; bu mod, yalnızca dizine eklenen değişiklikleri gizlemenize olanak tanır; örneğin, ilk önce karmaşık değişikliklerden bazılarını geçici olarak ertelemeniz gerektiğinde. zaten hazır olanı ekleyin ve bir süre sonra geri kalanıyla ilgilenin. Mod, "git commit" komutuna benzer, yalnızca dizine yerleştirilen değişiklikleri yazar, ancak "git stash —staged" içinde yeni bir taahhüt oluşturmak yerine sonuç, geçici saklama alanında saklanır. Değişiklikler gerektiğinde “git stash pop” komutuyla geri döndürülebilir.
  • "git log" komutuna "-format=%(describe)" adlı yeni bir format belirtici eklendi; bu, "git log" çıktısını "git define" komutunun çıktısıyla birleştirmenize olanak tanır. "git define" parametreleri doğrudan belirticinin içinde belirtilir ("-format=%(describe:match= ,hariç tut= )"), kısaltılmış etiketleri de dahil edebilirsiniz ("-format=%(describe:tags= )") ve nesneleri tanımlamak için onaltılık karakterlerin sayısını yapılandırın (“—format=%(describe:abbrev= )"). Örneğin, etiketleri sürüm adayı etiketi olmayan son 8 işlemi listelemek ve 8 karakterlik tanımlayıcıları belirtmek için şu komutu kullanabilirsiniz: $ git log -8 —format='%(describe:exclude=*-rc *,kısaltma=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642- gb56bd95 bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640- gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • user.signingKey ayarı artık "ssh-" türüyle sınırlı olmayan ve anahtarın tam dosya yolunu belirten yeni anahtar türlerini desteklemektedir. Alternatif türler "key::" öneki kullanılarak belirtilir; örneğin ECDSA anahtarları için "key::ecdsa-sha2-nistp256".
  • “—Histogram” modunda ve ayrıca renk farklılığında boşlukların vurgulanmasını kontrol eden “—color-moved-ws” seçeneği kullanıldığında değişikliklerin bir listesini oluşturma hızı gözle görülür şekilde artırıldı.
  • Birleştirme çakışmalarını ayrıştırırken, farkları görüntülerken veya bir arama işlemi gerçekleştirirken Vim'e bir dosyada istenen konuma tam atlama hakkında bilgi sağlamak için kullanılan "git jump" komutu, kapsanan birleştirme çakışmalarını daraltma yeteneği sağlar. Örneğin, işlemleri yalnızca "foo" dizini ile sınırlamak için, "git jump merge - foo" belirtebilir ve "Documentation" dizinini işlem dışında bırakmak için - "git jump merge - ':^Documentation'"
  • Nesnelerin boyutunu temsil eden değerler için "unsigned long" yerine "size_t" tipinin kullanımının standartlaştırılmasına yönelik çalışmalar yapılmış, bu sayede 4 GB'tan büyük dosyalarda "temiz" ve "smudge" filtrelerinin kullanılması mümkün olmuştur. LLP64 veri modeline sahip platformlar da dahil olmak üzere tüm platformlarda, 4 baytla sınırlı olan "unsigned long" türü.
  • “git am” komutuna “-empty=(stop|drop|keep)” seçeneği eklendi; bu seçenek, posta kutusundan yamaları ayrıştırırken yama içermeyen boş iletiler için davranışı seçmenizi sağlar. "Stop" değeri tüm yama işlemini sonlandıracak, "drop" boş bir yamayı atlayacak ve "keep" değeri boş bir taahhüt oluşturacaktır.
  • Performansı artırmak ve yerden tasarruf etmek için "git reset", "git diff", "gitcrim", "git fetch", "git pull" ve "git ls-files" komutlarına kısmi dizinler (seyrek dizin) desteği eklendi. kısmi klonlama işlemlerinin (seyrek ödeme) gerçekleştirildiği depolar.
  • "git sparse-checkout init" komutu kullanımdan kaldırıldı ve "git sparse-checkout set" ile değiştirilmesi gerekiyor.
  • Dallar ve etiketler gibi referansların depoda saklanması için yeni bir "reftable" arka ucun ilk uygulaması eklendi. Yeni arka uç, JGit projesi tarafından kullanılan blok depolamayı kullanıyor ve çok sayıda referansı depolamak için optimize ediliyor. Backend henüz refs sistemi ile entegre edilmemiştir ve pratik kullanıma hazır değildir.
  • "git grep" komutunun renk paleti, GNU grep yardımcı programına uyacak şekilde ayarlandı.

Kaynak: opennet.ru

Yorum ekle