- Der kleine Fehler, den Befehl
jj wiederholt einzugeben, führt zu einem Subcommand-Fehler, lässt sich aber mit einem jj-Konfigurationsalias abfangen
- Das Beispiel zeigt eine Situation, in der
jj jj show -T 'change_id.short()', das die kurze ID des aktuell bearbeiteten Changesets holen soll, fehlschlägt
jj kann wie git in der Konfigurationsdatei einen alias definieren, und mit jj util exec den restlichen Befehl wieder an jj übergeben
- Ein einfacher Alias interpretiert
-T nicht als Ziel für die Ausführung, sondern wie eine Option von jj util exec, daher muss das Parsen der Argumente mit -- beendet werden
- Mit der finalen Konfiguration
jj = ["util", "exec", "--", "jj"] gibt nicht nur jj jj show, sondern auch mehrfach verschachteltes jj jj jj... show dieselbe Changeset-ID aus
Wiederholt eingegebenes jj scheitert mit einem Subcommand-Fehler
- Wenn man bei der Nutzung von
jj in der Befehlszeile versehentlich ein weiteres jj eingibt, wird das zweite jj als Subcommand interpretiert und schlägt fehl
- Das Beispiel ist ein Befehl, der die kurze ID des aktuell bearbeiteten Changesets holen soll
$ jj jj show -T 'change_id.short()'
error: unrecognized subcommand 'jj'
Usage: jj [OPTIONS] <COMMAND>
For more information, try '--help'.
- Man kann das auch mit einem Shell-Alias umgehen, aber auch den alias in der
jj-eigenen Konfiguration verwenden
- Zum Bearbeiten der Konfiguration kann man
jj config edit verwenden
- Um die Konfiguration in der Shell zu ändern, kann man
jj config set verwenden
jj util exec fixiert die Argumentübergabe mit --
- Der erste Versuch besteht darin, über den Alias mit
jj util exec erneut jj auszuführen
[aliases]
# jj all the way down
jj = ["util", "exec", "jj"]
- In dieser Konfiguration wird
-T nicht für das auszuführende jj, sondern wie eine Option von jj util exec interpretiert und schlägt daher fehl
$ 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'.
- Fügt man
-- ein, wird das anschließende Parsen von Optionen beendet und die übrigen Argumente unverändert an das auszuführende Ziel übergeben
[aliases]
# jj all the way down
jj = ["util", "exec", "--", "jj"]
- Nach der finalen Konfiguration geben das normale
jj show, das verschachtelte jj jj show und noch stärker wiederholtes jj jj jj ... show alle dieselbe kurze Changeset-ID aus
$ 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 Kommentare
Meinungen auf Lobste.rs
Früher gab es auch schon git git git git git
Das geht auch mit einer einfacheren Methode:
Der einzige Nachteil dieser Form ist, wenn ich mich richtig erinnere, dass sie bei der Ausführung ohne weitere Argumente, etwa
jj jj, nicht wiejjden Standardbefehl ausführtWow, ich hatte vor fast einem Jahr (28.09.25) dieselbe Lösung im JJ Discord gepostet
Damit ein Tippfehler wie
jj jj ...tatsächlich wiejj ...funktioniert, braucht man das hier:Eigentlich gefällt mir diese Variante ziemlich gut
Ist das eine Referenz auf bunny party?
Ich habe es auch zu meinem jj-Konfigurations-Gist hinzugefügt: https://gist.github.com/pksunkara/622bc04242d402c4e43c7328234fd01c
Trotzdem würde ich gern eine Version sehen, die in Tweet-Länge und so erklärt ist, als wäre ich fünf, was Jujutsu ist und warum man es nutzen sollte
In meinem früheren Job habe ich Git vier Jahre lang täglich benutzt und es wirklich gehasst. Für das, was wir brauchten und wie es die meisten nutzten, war es grotesk überkomplex, und für die meisten war es kein verteiltes Versionsverwaltungssystem, sondern ein Github-zentriertes, zentralisiertes serverbasiertes Tool
Ich finde es amüsant, dass viele Git-Nutzer nicht wissen, dass
gitim britischen Englisch auch „eine mürrische, unkooperative und wenig hilfreiche Person“ bedeutet. Das beschreibt Git als Tool ziemlich gutAllerdings habe ich nie ein anderes Versionsverwaltungssystem benutzt, daher bin ich bei Vergleichen nicht stark. Jujutsu ist auch schwer zu googeln, und die Dokumentation scheint eher auf erfahrenere Versionsverwaltungsnutzer zugeschnitten zu sein als auf Leute wie mich
gittatsächlich wegen der Bedeutung unhöfliche und mürrische Person gewählt