- jj bookmark
Aliases for bookmark subcommands
- jj git push
Aliases for popular push flags
- jj new "trunk()"
- jj rebase -d "trunk()"
- jj status
jj - Jujutsu CLI
This plugin provides autocompletion for jj.
To use it, add jj to the plugins array of your zshrc file:
plugins=(... jj)
Aliases
| Alias | Command |
|---|---|
| jjb | jj bookmark |
| jjbc | jj bookmark create |
| jjbd | jj bookmark delete |
| jjbf | jj bookmark forget |
| jjbl | jj bookmark list |
| jjbm | jj bookmark move |
| jjbr | jj bookmark rename |
| jjbs | jj bookmark set |
| jjbt | jj bookmark track |
| jjbu | jj bookmark untrack |
| jjc | jj commit |
| jjcmsg | jj commit --message |
| jjd | jj diff |
| jjdmsg | jj desc --message |
| jjds | jj desc |
| jje | jj edit |
| jjgcl | jj git clone |
| jjgf | jj git fetch |
| jjgfa | jj git fetch --all-remotes |
| jjgp | jj git push |
| jjgpa | jj git push --all |
| jjgpd | jj git push --deleted |
| jjgpt | jj git push --tracked |
| jjl | jj log |
| jjla | jj log -r "all()" |
| jjn | jj new |
| jjnt | jj new "trunk()" |
| jjrb | jj rebase |
| jjrbm | jj rebase -d "trunk()" |
| jjrs | jj restore |
| jjrt | cd "$(jj root || echo .)" |
| jjsp | jj split |
| jjsq | jj squash |
| jjst | jj status |
Prompt usage
Because jj has a very powerful template syntax, this
plugin only exposes a convenience function jj_prompt_template to read information from the current change.
It is basically the same as jj log --no-graph -r @ -T $1:
_my_theme_jj_info() {
jj_prompt_template 'self.change_id().shortest(3)'
}
PROMPT='$(_my_theme_jj_info) $'
jj_prompt_template escapes % signs in the output. Use jj_prompt_template_raw if you don't want that
(e.g. to colorize the output).
However, because jj can be used inside a Git repository, some themes might clash with it. Generally, you can
fix it with a wrapper function that tries jj first and then falls back to git if it didn't work:
_my_theme_vcs_info() {
jj_prompt_template 'self.change_id().shortest(3)' \
|| git_prompt_info
}
PROMPT='$(_my_theme_vcs_info) $'
You can find an example here.
Performance
Sometimes jj can be slower than git.
If you feel slowdowns, consider using the following:
zstyle :omz:plugins:jj ignore-working-copy yes
This will add --ignore-working-copy to all jj commands executed by your prompt. The downside here is that
your prompt might be out-of-sync until the next time jj gets a chance to not ignore the working copy (i.e.
you manually run a jj command).
If you prefer to keep your prompt always up-to-date but still don't want to feel the slowdown, you can make your prompt asynchronous. This plugin doesn't do this automatically so you'd have to hack your theme a bit for that.