jj v0.43.0 yayımlandı
(github.com/jj-vcs)- Git uyumlu sürüm kontrol sistemi jj v0.43.0, birden fazla değişiklik kümesi üzerinde komut çalıştıran
jj runözelliğini ekleyerek tekrarlayan doğrulama ve düzeltme işlerini daha otomatik hale getiriyor jj run, her değişiklik kümesi için özel bir çalışma kopyası kullanıyor vecargo checkya dacargo fixgibi çalışma kopyasını değiştiren komutların ürettiği değişiklikleri ve çakışmaları da yayıyor- Bu sürüm,
git_head(),git_refs(), Git tarzı sembol çözümleme veui.revsets-use-glob-by-defaultseçeneğinin kaldırılması gibi mevcut yapılandırma ve revset kullanım biçimini etkileyen değişiklikler içeriyor jj show --reversed,/etc/jjyapılandırma araması,jj config gc,jj gerrit upload -o,forks()revset fonksiyonu ve üstü çizili metin renk stili de eklendi- Windows dosya kimliği işleme, değiştirilemez çalışma kopyası anlık görüntüleri, yinelenen remote URL uyarısı ve Intel Raptor Lake ile aarch64 üzerindeki gevşek Git nesnesi bozulması sorunu düzeltildi
Sürüme genel bakış
- jj, sade ama güçlü, Git uyumlu bir sürüm kontrol sistemidir
- v0.43.0 ile birlikte, birden fazla değişiklik kümesine komut uygulayan
jj runyeni olarak eklendi - Başlangıç için kurulum yönergelerine installation instructions sayfasından ulaşılabilir
Değişiklik kümesi başına komut çalıştırma: jj run
jj run, birden fazla değişiklik kümesi üzerinde aynı komutu çalıştırabilir- Her değişiklik kümesi, birbirinden ayrılmış özel bir çalışma kopyası kullanır
- Çalıştırılan komut çalışma kopyasını güncelleyebilir; bunun sonucunda oluşan değişiklikler ve çakışmalar uygun şekilde yayılır
- Kullanım örnekleri şöyle:
jj run -- cargo check --all-featuresjj run -- cargo fix
Uyumluluğu etkileyen kaldırmalar
- Revset ve template içinde artık kullanılmayan
git_head()vegit_refs()fonksiyonları kaldırıldı refs/heads/maingibi Git tarzı semboller artık revizyon olarak çözümlenmiyor- Bunun yerine bookmark/tag için
<name>veya<name>@<remote>sözdizimi kullanılmalı
- Bunun yerine bookmark/tag için
- Artık kullanılmayan
ui.revsets-use-glob-by-defaultseçeneği de kaldırıldı jj bookmark trackveuntrack, artık<kind>:<bookmark>@<remote>desenini desteklemiyor<bookmark>@<remote>sembol sözdizimi desteklenmeye devam ediyor- İlgili konu: #9226
Yeni eklenen özellikler
jj show,--reversedbayrağını destekliyorjj, yapılandırma dosyalarını artık/etc/jjiçinde de arıyorjj config gc,~/.config/jj/reposklasöründe silinmiş veya taşınmış depoların yapılandırmalarını temizliyor- İlgili konu: #9362
jj gerrit upload,git push -oveya--push-optionile benzer çalışan-o/--optionbayrağını destekliyorjj git fetch, değişiklik kimliğini temel alarak yeniden yazılan revizyonların alt revizyonlarını rebase ediyor- Önceden, yığında bookmark ekli birden fazla revizyon olduğunda, yeniden yazılan revizyon ve onun alt revizyonları her zaman rebase edilmiyordu
- Değiştirilemez alt revizyonlar rebase edilmez
forks()revset fonksiyonu eklendi- İki veya daha fazla çocuğu olan tüm commit'leri döndürür
colorsayarı,{ crossed-out = true }ile üstü çizili metin stilini destekliyor
Düzeltilen sorunlar
- Windows'ta bir yolun dosya kimliği alınırken artık sembolik bağlantılar takip edilmiyor
- Bu, Unix davranışıyla uyumlu hale getirildi
- Önceden aynı hedefe bağlı iki sembolik bağlantı aynı dosya gibi değerlendiriliyordu
- Bu kimlik denetimi, çalışma kopyası yazılırken ayrılmış
.gitve.jjdizinlerinin alias'larını tespit etmek için kullanılıyor - İlgili konu: #8924
- Çalışma kopyası değiştirilemez durumdayken
jj, anlık görüntü sırasında yeni bir working-copy revizyonu oluşturuyor jj git remote add, yeni remote'un fetch URL'si veya etkin push URL'si mevcut bir remote ile tam olarak aynıysa uyarı veriyor- İlgili konu: #413
- Intel Raptor Lake CPU'larda ve aarch64 üzerinde bozuk loose Git object sorunu düzeltildi
- Önceden
jj, commit işleminin başarılı olduğunu bildiriyor ama sonrasındagit fsck,incorrect data check,corrupt loose object,missing blobhatalarıyla başarısız olabiliyordu - Sonraki
jjişlemleri decorrupt deflate streamhatasıyla başarısız olabiliyordu
- Önceden
1 yorum
Lobste.rs yorumları
jj runiçin çok heyecanlıyımjj bookmark track/untrack <name>@<remote>için kullanımdan kaldırma kararının geri alınmasına sevindimHer seferinde
--remoteyazmak hep can sıkıcıydıIntel Raptor Lake CPUveaarch64üzerinde bozuk loose Git nesnelerinin düzeltilmiş olması ilginç bir hata gibi geliyorBununla ilgili bir blog yazısı çıkarsa okumak isterim 😃
Şimdiye kadar gördüğüm bozuk Git nesnelerinin hepsinin dosya sistemi geri alma işleminden kaynaklandığını düşünüyordum
Sert kapatma sonrasında f2fs rollback epey ilginç disk durumları yaratabiliyordu; aslında kırık kısmın orada olduğunu öğrenmek çok ilginç
jj runınjj fixten nasıl farklı olduğunu merak ediyorumDeğişiklik günlüğündeki örnekte de
jj runilecargo fixçalıştırılıyordu; ikisi kesinlikle örtüşüyor gibi görünüyorjj run, tüm çalışma kopyasını oluşturup komutu onun içinde çalıştırıyorjj fixise tek bir dosyanın içeriğini komuta pipe ediyor ve çıktıyı o dosyanın yeni içeriği olarak alıyorAraç
jj fixile iyi uyuyorsa, genelde formatter veya linter gibi, çok daha hızlı olur; amajj rundaha esnekrunher değişiklik için komutu çalıştırıyor,fixise her değişen dosya üzerinde bir filtre çalıştırıyorBenim kullanımımda
runile test paketini çalıştırıp her commit’in geçerli olduğunu doğrular, ardındanfixile dosyalara formatter uygularımHenüz güncellemedim; bu sadece benim yorumum
jj runile biraz oynayacağım ama direnv kullanma biçimim yüzünden gereğinden fazla uğraştırıcı hâle gelme ihtimalinin yüksek olduğunu düşünüyorum