- Kesalahan kecil mengetik perintah
jj berulang kali memang berujung pada error subcommand, tetapi bisa diserap dengan alias konfigurasi jj
- Contohnya adalah situasi ketika
jj jj show -T 'change_id.short()', yang dimaksudkan untuk mendapatkan ID pendek changeset yang sedang diedit, gagal
- Seperti git,
jj dapat mendefinisikan alias di file konfigurasi, sehingga dengan jj util exec sisa perintah dapat diteruskan kembali ke jj
- Alias sederhana menafsirkan
-T bukan sebagai milik target eksekusi, melainkan seperti opsi untuk jj util exec, jadi parsing argumen harus dihentikan dengan --
- Dengan konfigurasi akhir
jj = ["util", "exec", "--", "jj"], bukan hanya jj jj show, tetapi juga jj jj jj... show yang ditumpuk berkali-kali akan mencetak ID changeset yang sama
jj yang diketik berulang gagal karena error subcommand
- Saat menggunakan
jj, jika Anda mengetik satu jj lagi di command line, jj kedua ditafsirkan sebagai subcommand dan gagal
- Contohnya adalah perintah untuk mengambil ID pendek dari changeset yang sedang diedit
$ jj jj show -T 'change_id.short()'
error: unrecognized subcommand 'jj'
Usage: jj [OPTIONS] <COMMAND>
For more information, try '--help'.
- Ini juga bisa diakali dengan alias shell, tetapi Anda dapat memakai alias pada konfigurasi
jj sendiri
- Untuk mengedit konfigurasi, Anda dapat menggunakan
jj config edit
- Untuk mengubah konfigurasi dari shell, Anda dapat menggunakan
jj config set
Mengunci penerusan argumen dengan -- di jj util exec
- Percobaan pertama adalah menjalankan kembali
jj lewat jj util exec dari alias
[aliases]
# jj all the way down
jj = ["util", "exec", "jj"]
- Dengan konfigurasi ini,
-T ditafsirkan bukan sebagai milik target eksekusi jj, melainkan seperti opsi untuk jj util exec, sehingga gagal
$ 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'.
- Jika menambahkan
--, parsing opsi setelahnya dapat dihentikan dan argumen yang tersisa diteruskan apa adanya ke target eksekusi
[aliases]
# jj all the way down
jj = ["util", "exec", "--", "jj"]
- Setelah konfigurasi akhir,
jj show biasa, jj jj show yang ditumpuk, dan jj jj jj ... show yang diulang lebih banyak semuanya mencetak ID changeset pendek yang sama
$ 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 komentar
Opini Lobste.rs
Sebelumnya juga pernah ada git git git git git
Ini juga bisa dilakukan dengan cara yang lebih sederhana:
Satu-satunya kekurangan bentuk ini, kalau ingatan saya benar, adalah saat dijalankan tanpa argumen lain seperti
jj jj, ia tidak menjalankan perintah default sepertijjWah, hampir setahun lalu (28/09/25) saya pernah memposting solusi yang sama di JJ Discord
Agar salah ketik
jj jj ...berperilaku sepertijj ..., sebenarnya ini yang dibutuhkan:Sejujurnya saya cukup suka cara ini
Apakah ini referensi ke bunny party?
Saya juga menambahkannya ke gist konfigurasi jj yang saya kelola: https://gist.github.com/pksunkara/622bc04242d402c4e43c7328234fd01c
Tetap saja, saya ingin melihat versi ringkas sepanjang tweet yang menjelaskan apa itu Jujutsu dan mengapa harus memakainya, seolah menjelaskannya kepada anak 5 tahun
Di tempat kerja sebelumnya saya memakai Git setiap hari selama 4 tahun, dan saya benar-benar membencinya. Untuk kebutuhan kami dan sebagian besar cara penggunaannya, Git terasa luar biasa terlalu rumit, dan bagi kebanyakan orang ia bukan sistem version control terdistribusi, melainkan alat terpusat berbasis server yang berpusat pada Github
Lucu juga bahwa banyak pengguna Git tidak tahu bahwa
gitdalam bahasa Inggris Britania juga berarti “orang yang pemarah, tidak kooperatif, dan tidak membantu”. Itu menggambarkan Git sebagai alat dengan baikNamun saya belum pernah memakai sistem version control lain, jadi saya lemah dalam membandingkan. Jujutsu juga sulit dicari di Google, dan dokumentasinya tampaknya lebih ditujukan untuk pengguna version control yang lebih mahir daripada orang seperti saya
gitmemang karena artinya orang yang kasar dan pemarah