Git 2.36 kaynak denetimi sürümü

Üç aylık geliştirme sürecinin ardından dağıtılmış kaynak kontrol sistemi Git 2.36 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.

717 geliştiricinin katılımıyla hazırlanan ve 96'sı ilk kez geliştirmede görev alan yeni sürümde, önceki sürüme göre 26 değişiklik benimsendi. Ana yenilikler:

  • "Git log" ve "git show" komutları artık, birleştirmenin genel sonucu ile "merge" komutunu işledikten sonra işleme yansıtılan gerçek veriler arasındaki farkları göstermenize olanak tanıyan bir "—remerge-diff" seçeneğine sahiptir Bu, birleşme çatışmalarının çözülmesi sonucunda yapılan değişiklikleri net bir şekilde değerlendirmenize olanak tanır. Normal "git show" komutu farklı çakışma çözümlerini girintileyerek değişikliklerin anlaşılmasını zorlaştırır. Örneğin, aşağıdaki ekran görüntüsünde girintisiz "+/-" satırı, ilk daldaki yorumda sha1'in oid olarak yeniden adlandırılmasıyla ilişkili çatışmanın son çözümünü gösterir ve girintili "+/-" ilk daldaki yorumu gösterir. dwim_ref() fonksiyonunun ikinci dalında ek bir argümanın ortaya çıkmasından kaynaklanan çatışmanın çözümü.
    Git 2.36 kaynak denetimi sürümü

    "--remerge-diff" seçeneğini kullanırken, çakışma çözümlemeleri arasındaki farklar her ana dal için ayrılmaz, ancak birleştirme çakışmaları olan dosya ile çakışmaların çözüldüğü dosya arasındaki genel farklar gösterilir.

    Git 2.36 kaynak denetimi sürümü

  • Fsync() işlevine yapılan bir çağrı yoluyla disk önbelleklerini temizleme davranışını yapılandırmada artan esneklik. Daha önce mevcut olan core.fsyncObjectFiles parametresi, core.fsync ve core.fsyncMethod olmak üzere iki yapılandırma değişkenine bölünmüş olup, fsync'in yalnızca nesne dosyalarına (.git/objects) değil aynı zamanda bağlantılar () gibi diğer git yapılarına da uygulanmasına olanak sağlar. .git /refs), dosyaları yeniden günlüğe kaydedin ve paketleyin.

    core.fsync değişkenini kullanarak, fsync'in bir yazma işleminden sonra ek olarak çağrılacağı dahili Git yapılarının bir listesini belirtebilirsiniz. core.fsyncMethod değişkeni, önbelleği temizlemek için bir yöntem seçmenize olanak tanır; örneğin, aynı adı taşıyan sistem çağrısını kullanmak için fsync'i seçebilir veya pagecache geri yazma özelliğini kullanmak için yalnızca yazma seçeneğini belirleyebilirsiniz.

  • Diğer kullanıcıların .git dizinlerini paylaşılan bölümlere yerleştirmesini manipüle eden güvenlik açıklarına karşı koruma sağlamak için depo sahibi doğrulaması güçlendirildi. Artık herhangi bir git komutunun çalıştırılmasına yalnızca kendi ".git" dizinlerinde izin veriliyor. Deponun bulunduğu dizin başka bir kullanıcıya aitse, varsayılan olarak bir hata görüntülenecektir. Bu davranış, güvenli.dizin ayarı kullanılarak devre dışı bırakılabilir.
  • Git nesnelerinin kaynak içeriklerinin çıktısını almayı amaçlayan "git cat-file" komutu, daha önce mevcut olan "--batch" ve "--batch-check" komutlarını tamamlayan "--batch-command" seçeneğiyle desteklendi. İçeriği görüntülemek için “ content <object>” veya nesne hakkındaki bilgileri görüntülemek için “info <object>” kullanarak çıktı türünü uyarlamalı olarak seçebilme özelliğine sahip komutlar. Ek olarak, çıkış arabelleğini temizlemek için "temizleme" komutu desteklenir.
  • Bir nesne ağacının içeriklerinin listesini oluşturmak için tasarlanan “git ls-tree” komutuna, “—name-only”ye benzer şekilde “—oid-only” (“—object-only”) seçeneği eklenmiştir. ”, komut dosyalarından çağrıyı basitleştirmek için yalnızca nesne tanımlayıcılarını görüntülüyor. Ayrıca mod, tür, ad ve boyut hakkındaki bilgileri birleştirerek kendi çıktı biçiminizi tanımlamanıza olanak tanıyan “--format” seçeneği de uygulanmıştır.
  • "git bisect run" komutu, bir komut dosyası için yürütülebilir dosya bayrağının ayarlanmadığının ve bu durumda 126 veya 127 kodlu hataların görüntülendiğinin tespitini uygular (daha önce, komut dosyası çalıştırılamazsa tüm revizyonlar sorunlu olarak işaretleniyordu). .
  • Diğer tarafa yerel sistemde zaten bulunan içerik hakkında bilgi vermeden tüm nesneleri getirmek için "git fetch" komutuna --refetch seçeneği eklendi. Bu davranış, yerel verilerin bütünlüğünün belirsiz olduğu durumlarda hatalardan kurtulmak için yararlı olabilir.
  • "git update-index", "git checkout-index", "git read-tree" ve "git clean" komutları artık performansı artırmak ve kısmi işlemlerin gerçekleştirildiği depolarda yer tasarrufu sağlamak için kısmi dizinleri (seyrek dizin) destekliyor. (seyrek ödeme).
  • "git clone —filter=... —recurse-submodules" komutunun davranışı değiştirildi, bu da artık alt modüllerin kısmi klonlanmasına yol açıyor (daha önce bu tür komutları çalıştırırken filtre yalnızca ana içeriğe uygulanıyordu ve alt modüller filtre dikkate alınmadan tamamen klonlanmıştır).
  • "Git bundle" komutu, kısmi klonlama işlemlerine benzer şekilde içeriğin seçici olarak yerleştirilmesi için filtrelerin belirlenmesine yönelik destek ekledi.
  • Alt modülleri yinelemeli olarak dolaşmak için "git Branch" komutuna "--recurse-submodules" seçeneği eklendi.
  • Userdiff, Kotlin dili için yeni bir işleyici sunuyor.

Kaynak: opennet.ru

Yorum ekle