- Une petite erreur consistant à saisir
jj de manière répétée provoque une erreur de sous-commande, mais elle peut être absorbée avec un alias de configuration jj
- L’exemple montre l’échec de
jj jj show -T 'change_id.short()', qui essaie d’obtenir l’ID court du changeset en cours d’édition
jj, comme git, permet de définir des alias dans le fichier de configuration, et jj util exec peut retransmettre les commandes restantes à jj
- Un alias simple interprète
-T non pas comme une option de la commande exécutée, mais comme une option de jj util exec lui-même ; il faut donc arrêter l’analyse des arguments avec --
- Avec la configuration finale
jj = ["util", "exec", "--", "jj"], non seulement jj jj show, mais aussi les formes imbriquées jj jj jj... show, affichent le même ID de changeset
La répétition de jj provoque un échec avec une erreur de sous-commande
- Lors de l’utilisation de
jj, si l’on saisit un jj supplémentaire sur la ligne de commande, le second jj est interprété comme une sous-commande et échoue
- L’exemple montre une commande qui essaie d’obtenir l’ID court du changeset actuellement en cours d’édition
$ jj jj show -T 'change_id.short()'
error: unrecognized subcommand 'jj'
Usage: jj [OPTIONS] <COMMAND>
For more information, try '--help'.
- On peut contourner cela avec un alias shell, mais il est aussi possible d’utiliser un alias dans la configuration de
jj
- On peut utiliser
jj config edit pour modifier la configuration
- On peut utiliser
jj config set pour changer la configuration depuis le shell
Avec jj util exec, -- fixe le passage des arguments
- La première tentative consiste à relancer
jj depuis l’alias via jj util exec
[aliases]
# jj all the way down
jj = ["util", "exec", "jj"]
- Avec cette configuration,
-T est interprété non pas comme une option du jj exécuté, mais comme une option de jj util exec, ce qui fait échouer la commande
$ 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'.
- En ajoutant
--, on arrête l’analyse des options à cet endroit et on peut transmettre les arguments restants tels quels à la commande exécutée
[aliases]
# jj all the way down
jj = ["util", "exec", "--", "jj"]
- Après la configuration finale,
jj show, jj jj show et même jj jj jj ... show affichent tous le même ID court de changeset
$ 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 commentaires
Avis sur Lobste.rs
Il y avait déjà eu git git git git git auparavant
On peut aussi faire ça d’une manière plus simple :
Le seul inconvénient de cette forme, si je me souviens bien, c’est que si on l’exécute sans autre argument, comme
jj jj, elle n’exécute pas la commande par défaut commejjWaouh, j’avais posté la même solution sur le Discord de JJ il y a presque un an (28/09/25)
Pour qu’une faute de frappe
jj jj ...se comporte commejj ..., il faut en réalité ceci :En fait, j’aime bien cette approche
C’est une référence à bunny party ?
Je l’ai aussi ajouté à mon gist de configuration jj : https://gist.github.com/pksunkara/622bc04242d402c4e43c7328234fd01c
J’aimerais quand même voir une version qui explique ce qu’est Jujutsu et pourquoi il faudrait l’utiliser en longueur de tweet, comme si on l’expliquait à un enfant de 5 ans
Dans mon précédent job, j’ai utilisé Git tous les jours pendant 4 ans, et je l’ai vraiment détesté. C’était absurdement trop complexe par rapport à ce dont on avait besoin et à la manière dont la plupart des gens l’utilisaient, et pour la majorité ce n’était pas un système de contrôle de version distribué, mais plutôt un outil centralisé autour de GitHub
C’est amusant que beaucoup d’utilisateurs de Git ne sachent pas que
gitsignifie aussi en anglais britannique « quelqu’un de grincheux, peu coopératif et pas serviable ». C’est une assez bonne description de Git en tant qu’outilCela dit, je n’ai jamais utilisé d’autre système de contrôle de version, donc je ne suis pas très solide sur les comparaisons. Jujutsu est aussi difficile à chercher sur Google, et sa documentation semble davantage pensée pour des utilisateurs plus expérimentés du contrôle de version que pour quelqu’un comme moi
gitparce que ça voulait dire personne impolie et grincheuse