I've been adding jj helpers to zsh quite a bit lately. Here are a few of my favs:
jl— log from fork point with trunk up to@(the current branch slice)jll— fulljj logjl-unmerged— your commits not yet in trunkjl-unpushed— your commits not in any remote bookmarkjl-heads-mine/jl-heads-all— DAG heads, yours vs. everyone'sjbl-untracking— bookmarks that exist locally but aren't tracking a remote (set difference of all vs. tracked)jj-abandon-empty— abandon empty mutable commits except@jl-bookmark <b>— log the slice from fork point up to bookmarkbjl-origin <b>— show closest and all bookmarks containingb's fork point (i.e. where it branched off)jl-contains <rev>— same idea but for any revision: which bookmarks contain itjj-push <bookmark> [rev]— set bookmark torev(default@) andjj git push -bit. Has zsh completion for both args.ghpr <issue> [target=staging]— create a PR for the bookmark whose name contains the issue number. Issue arg accepts123,tigger#123,issues#123, ororg/repo#123. Title is pulled fromgh issue view; body iscloses <repo>#<issue>._jj_prompt— renders the shell-prompt jj segment. Walks from the nearest bookmark ancestor to@in a singlejj logcall:- on a bookmark commit: shows the bookmark name, with
↑if it's ahead of its remote - off a bookmark: shows
name +Nwhere N is commits past the nearest bookmark - no bookmark ancestor: falls back to short change id with
∅(empty),⚠(conflict),⑂(divergent) markers
- on a bookmark commit: shows the bookmark name, with