jj command को बार-बार टाइप करने की छोटी-सी गलती subcommand error में बदल जाती है, लेकिन इसे jj config alias से absorb किया जा सकता है
- उदाहरण में मौजूदा edit हो रहे changeset की short ID पाने के लिए चलाया गया
jj jj show -T 'change_id.short()' fail होता है
jj, git की तरह config file में alias define कर सकता है, इसलिए jj util exec से बचे हुए command को फिर से jj को पास किया जा सकता है
- Simple alias में
-T को execute होने वाले target के बजाय jj util exec के option की तरह interpret किया जाता है, इसलिए argument parsing रोकने के लिए -- लगाना पड़ता है
- Final config
jj = ["util", "exec", "--", "jj"] इस्तेमाल करने पर jj jj show ही नहीं, कई बार nested jj jj jj... show भी वही changeset ID output करता है
बार-बार टाइप किया गया jj subcommand error से fail होता है
jj इस्तेमाल करते समय command line में एक और jj टाइप कर देने पर, दूसरा jj subcommand के रूप में interpret होता है और fail हो जाता है
- उदाहरण मौजूदा edit हो रहे changeset की short ID लाने वाला command है
$ jj jj show -T 'change_id.short()'
error: unrecognized subcommand 'jj'
Usage: jj [OPTIONS] <COMMAND>
For more information, try '--help'.
- Shell alias से भी workaround किया जा सकता है, लेकिन
jj की अपनी config का alias इस्तेमाल किया जा सकता है
- Config edit करने के लिए
jj config edit इस्तेमाल किया जा सकता है
- Shell से config बदलने के लिए
jj config set इस्तेमाल किया जा सकता है
jj util exec में -- से argument forwarding fix करना
- पहला attempt alias से
jj util exec के जरिए फिर से jj run करने का तरीका है
[aliases]
# jj all the way down
jj = ["util", "exec", "jj"]
- इस config में
-T execute होने वाले target jj के बजाय jj util exec के option की तरह interpret होता है और fail हो जाता है
$ 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'.
-- जोड़ने पर उसके बाद option parsing बंद हो जाती है और बचे हुए arguments वैसे ही execute होने वाले target को pass किए जा सकते हैं
[aliases]
# jj all the way down
jj = ["util", "exec", "--", "jj"]
- Final config के बाद normal
jj show, nested jj jj show, और ज्यादा बार repeated jj jj jj ... show सभी वही short changeset ID output करते हैं
$ 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 टिप्पणियां
Lobste.rs की राय
पहले भी git git git git git था
यह और भी सरल तरीके से किया जा सकता है:
इस रूप का इकलौता नुकसान यह है कि, अगर मुझे ठीक याद है, तो
jj jjकी तरह बिना किसी और argument के चलाने पर यहjjकी तरह default command नहीं चलातावाह, लगभग 1 साल पहले (09/28/25) JJ Discord पर यही समाधान पोस्ट किया था
jj jj ...टाइपो कोjj ...की तरह काम कराने के लिए असल में इसकी जरूरत होती है:सच कहूँ तो मुझे यह तरीका काफी पसंद है
क्या यह bunny party का संदर्भ है?
मैंने इसे अपने maintain किए हुए jj config gist में भी जोड़ दिया है: https://gist.github.com/pksunkara/622bc04242d402c4e43c7328234fd01c
फिर भी मैं Jujutsu क्या है और इसे क्यों इस्तेमाल करना चाहिए, इसका tweet-length, 5 साल के बच्चे को समझाने जैसा version देखना चाहूँगा
पिछली नौकरी में मैंने 4 साल तक रोज Git इस्तेमाल किया, और मुझे यह सच में नापसंद था। हमें जिसकी जरूरत थी और हम ज्यादातर इसे जैसे इस्तेमाल करते थे, उसके मुकाबले यह अजीब हद तक जरूरत से ज्यादा जटिल था, और ज्यादातर लोगों के लिए यह distributed version control system नहीं बल्कि Github-केंद्रित, centralized server-based tool था
यह मजेदार है कि कई Git users नहीं जानते कि British English में
gitका मतलब “चिड़चिड़ा, असहयोगी और बेकार व्यक्ति” भी होता है। एक tool के रूप में Git को यह अच्छी तरह बयान करता हैहालांकि मैंने कोई और version control system इस्तेमाल नहीं किया है, इसलिए तुलना में कमजोर हूँ। Jujutsu को Google पर खोजना भी मुश्किल है, और docs भी मुझ जैसे लोगों के बजाय ज्यादा अनुभवी version control users के लिए लिखे लगते हैं
gitसच में इसलिए चुना था क्योंकि इसका मतलब असभ्य और चिड़चिड़ा व्यक्ति होता है