1 puan yazan GN⁺ 5 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • jj komutunu yanlışlıkla tekrarlamak küçük bir hata gibi görünse de alt komut hatasına yol açar; ancak bu durum jj yapılandırma takma adıyla absorbe edilebilir
  • Örnekte, şu anda düzenlenen changeset’in kısa ID’sini almak için kullanılan jj jj show -T 'change_id.short()' komutunun başarısız olduğu durum gösteriliyor
  • jj, git gibi yapılandırma dosyasında alias tanımlamaya izin verir; jj util exec ile kalan komutlar yeniden jjye aktarılabilir
  • Basit bir takma ad, -Tyi çalıştırılacak hedefin değil jj util execin seçeneği gibi yorumladığından, argüman ayrıştırmasını -- ile kesmek gerekir
  • Son ayar olan jj = ["util", "exec", "--", "jj"] kullanıldığında yalnızca jj jj show değil, birden çok kez iç içe geçmiş jj jj jj... show da aynı changeset ID’sini yazdırır

Tekrarlanarak girilen jj, alt komut hatasıyla başarısız oluyor

  • jj kullanırken komut satırına fazladan bir jj daha yazarsanız, ikinci jj alt komut olarak yorumlanır ve komut başarısız olur
    • Örnek, şu anda düzenlenen changeset’in kısa ID’sini almaya çalışan bir komuttur
$ jj jj show -T 'change_id.short()'
error: unrecognized subcommand 'jj'
Usage: jj [OPTIONS] <COMMAND>
For more information, try '--help'.
  • Kabuk takma adıyla da etrafından dolaşılabilir, ancak jjnin kendi yapılandırmasındaki alias kullanılabilir
    • Yapılandırmayı düzenlemek için jj config edit kullanılabilir
    • Kabuktan yapılandırmayı değiştirmek için jj config set kullanılabilir

jj util exec içinde argüman aktarımı -- ile sabitleniyor

  • İlk deneme, takma addan jj util exec ile tekrar jj çalıştırma yöntemidir
[aliases]


# jj all the way down
jj = ["util", "exec", "jj"]
  • Bu ayarda -T, çalıştırılacak hedef jjnin değil jj util execin seçeneği gibi yorumlandığı için başarısız olur
$ jj jj show -T 'change_id.short()'
error: unexpected argument '-T' found
tip: to pass '-T' as a value, use '-- -T'
Usage: jj util exec [OPTIONS] <COMMAND> [ARGS]...
For more information, try '--help'.
  • -- eklendiğinde, sonrasındaki seçenek ayrıştırması durdurulur ve kalan argümanlar olduğu gibi çalıştırılacak hedefe aktarılabilir
[aliases]


# jj all the way down
jj = ["util", "exec", "--", "jj"]
  • Son ayardan sonra normal jj show, iç içe geçmiş jj jj show ve daha çok tekrarlanmış jj jj jj ... show komutlarının tümü aynı kısa changeset ID’sini yazdırır
$ jj show -T 'change_id.short()'
upvqxuzzvxtx
$ jj jj show -T 'change_id.short()'
upvqxuzzvxtx
$ jj jj jj jj jj show -T 'change_id.short()'
upvqxuzzvxtx
$ jj jj jj jj jj jj jj jj jj jj jj jj jj jj jj jj jj show -T 'change_id.short()'
upvqxuzzvxtx

1 yorum

 
GN⁺ 5 시간 전
Lobste.rs görüşleri
  • Daha önce de git git git git git vardı

  • Bu, daha basit bir yöntemle de yapılabilir:

    [aliases]  
    jj = []  
    

    Bu biçimin tek dezavantajı, doğru hatırlıyorsam jj jj gibi başka argüman olmadan çalıştırıldığında jj gibi varsayılan komutu çalıştırmaması

    • O zaman bu daha basit yöntem aslında aynı işi yapmıyor değil mi?
  • Vay, neredeyse 1 yıl önce (28/09/25) JJ Discord üzerinde aynı çözümü paylaşmıştım
    jj jj ... yazım hatasının jj ... gibi davranması için aslında gereken şey şu:

    [aliases]  
    jj = ["util", "exec", "--", "jj"]  
    

    Aslında bu yöntemi epey beğeniyorum

  • Bu bir bunny party referansı mı?

  • Kendi yönettiğim jj yapılandırma gist’ime de ekledim: https://gist.github.com/pksunkara/622bc04242d402c4e43c7328234fd01c

  • Yine de Jujutsu’nun ne olduğunu ve neden kullanmam gerektiğini tweet uzunluğunda, 5 yaşındaki birine anlatır gibi özetleyen bir versiyon görmek isterim
    Önceki iş yerimde Git’i 4 yıl boyunca her gün kullandım ve gerçekten nefret ettim. İhtiyaç duyduğumuz şeylere ve çoğu kullanım biçimine kıyasla tuhaf derecede aşırı karmaşıktı; çoğu kişi için dağıtık bir sürüm kontrol sistemi değil, Github merkezli, merkezi sunucu tabanlı bir araçtı
    Birçok Git kullanıcısının git kelimesinin Britanya İngilizcesinde “huysuz, işbirliğine yanaşmayan ve işe yaramaz kişi” anlamına da geldiğini bilmemesi komik. Araç olarak Git’i iyi anlatan bir ifade
    Ancak başka bir sürüm kontrol sistemi hiç kullanmadığım için karşılaştırma konusunda zayıfım. Jujutsu’yu Google’da aramak da zor; belgeleri de benim gibi kişilerden çok daha deneyimli sürüm kontrol kullanıcılarına yönelik gibi görünüyor

    • Torvalds’ın git adını seçmesinin gerçekten de kaba ve huysuz kişi anlamından dolayı olduğunu düşünüyorum