jj v0.42.0 sürümü yayımlandı - Git uyumlu sürüm kontrol sistemi
(github.com/jj-vcs)- mimalloc bellek ayırıcısına geçilerek çok iş parçacıklı performans iyileştirildi
jj commit --reset-author/--author,jj describe --no-edit/--edit/--reset-author/--authorgibi kullanımdan kaldırılması planlanan komut seçenekleri kaldırıldıjj git push --allow-new,jj metaedit --update-committer-timestampseçenekleri kaldırıldıgit.auto-local-bookmark,git.push-new-bookmarksgibi kullanımdan kaldırılması planlanan yapılandırma seçenekleri kaldırıldıjj evolog,jj0.30 öncesinde kaydedilen eski commit predecessor desteğini sonlandırdı- Kabuk otomatik tamamlama, kullanıcı tanımlı alias, revset-alias, template-alias ve fileset-alias açıklamalarını gösteriyor; ayrıca tablo biçimindeki alias tanımlarının
.docalanından açıklama çıkarıyor jj show, birden fazla revizyon alabiliyor vegit showa daha yakın olacak şekilde her revizyonu sırayla gösteriyorjj git fetch, change ID tabanlı evolution history oluşturuyor; uzak depo change ID'yi koruyorsa yerel descendant revizyonları yeniden yazılmış ebeveynin üzerine rebase ediyorjj util backend namekomutu, mevcut depoda kullanılan commit backend adını yazdırıyor- Diff editor için
edit-invocation-modeayarı eklendi;"file-by-file"belirtildiğinde değişen her dosya için düzenleyici bir kez çalıştırılıyor vevimdiffgibi dosya bazlı araçlar kullanılabiliyor jj git remote add, boş uzak depo adı veya boşluk içeren uzak depo adı verildiğinde panic yerine hata bildiriyor- Renkli çıktı kapalıyken color-words diff, before/after içeriğini ayrı satırlarda göstererek pipe edilen veya yönlendirilen difflerin okunabilirliğini artırıyor
1 yorum
Lobste.rs görüşleri
jj git fetchartık change ID tabanlı evrim geçmişi oluşturuyorsa, uzak depo change ID'leri koruduğunda herjj git fetchişleminden hemen sonrajj new mainyapmaya gerek kalmayıp kalmadığını merak ediyorumÖyleyse bu oldukça iyi bir yaşam kalitesi iyileştirmesi gibi görünüyor
mainüzerinde oluşacak, dolayısıyla o kısımda pek yardımcı olacak gibi görünmüyorYalnız change ID içermeyen GitHub tarafından oluşturulan merge commit'lerde ne olacağını bilmiyorum
Çok iş parçacıklı performansı artırmak için
mimallocbellek ayırıcısına geçildiği kısmını daha merak ediyorumUzun süre çalışan süreçlerde parçalanmayı azaltmak için
jemallocgibi şeyler kullandım, amajjbana 1 ms'de başlayıp 10 ms içinde biten bir araç gibi geliyor; bu yüzden ayırıcı değişikliğinin hissedilir olması şaşırtıcıBiraz daha bakınca PR'nin https://github.com/jj-vcs/jj/pull/9484 olduğunu ve yalnızca https://github.com/jj-vcs/jj/issues/2490#issuecomment-2595323515 gibi bir şeyi bulabildiğimi gördüm; büyük bir hız artışı gibi görünmüyor. Yine de daha hızlıysa ve değişiklik de birkaç satırsa gayet iyi
“Uzak depo change ID'leri koruyorsa” denmiş ama genelde uzak depoların bunu koruyup korumadığını bilmiyorum
jj gerrit uploadkomutunun change ID footer'ı eklediğini biliyorum, ama normaljj git pushbunu yapmıyorAncak GitHub'ın squash merge veya rebase merge işlemleri gibi commit'i yeniden yazan işlemler bunu korumaz. Standart
libgit2tabanlı araçlarla işlendiğinde custom header korunmaz; GitButler'ın kullandığı Rust kütüphanesi gibi bazı araçlar custom header korumayı destekliyor, ama forge'ların böyle bir şey kullanıp kullanmadığı belirsizGerçekten korunduğunu nasıl doğrulamak gerektiğini de bilmiyorum
Belgelerde daha ayrıntılı bilgi var
GitHub da koruyor; lobsters kod tabanındaki pushcx commit'lerine veya benim commit'lerime bakarak doğrulayabilirsiniz
Standart Git yerine neden jj kullanılması gerektiğini anlatan okunacak ya da izlenecek bir kaynak olup olmadığını merak ediyorum
jj'nin Git üzerinde çalışabildiğini biliyorum ve hobi projelerinde de denedim, ama neden daha iyi ya da daha kolay olduğuna dair o belirleyici çekiciliği hâlâ tam bulabilmiş değilim