dotfiles/vcs/jj/config/sh/alias.d/jj.sh
Marty Oehme 0ce2c1b7da
jj: Add raw log command alias
Added `jlr` which, contrary to all the other jj log commands simply
gives quicker access to the actual raw `log` command for custom
operations.
2025-11-14 10:26:57 +01:00

86 lines
2.4 KiB
Bash

#!/usr/bin/env sh
if ! exist jj; then
return 1
fi
alias j="jj"
if exist lazyjj; then
alias lj="lazyjj"
fi
alias jn="jj new"
alias jna="jj new -A@"
alias jnb="jj new -B@"
alias jds="jj describe"
alias jc="jj commit"
# finding out the current snapshot
alias js="jj status"
alias jw="jj show"
alias jd="jj diff"
# for describe-and-edit workflows
# https://steveklabnik.github.io/jujutsu-tutorial/real-world-workflows/the-edit-workflow.html
alias je="jj edit"
alias jen="jj next --edit"
alias jep="jj prev --edit"
alias jenn="jj next"
alias jepp="jj prev"
# edit the 'newest' head descendant of current working copy
# usually means 'get me to head of current branch'
alias jed="jj edit -r 'latest(heads(descendants(@)))'"
# go to the newest head of the trunk branch
alias jet="jj edit -r 'latest(heads(descendants(trunk())))'"
# simply go to the newest commit, i.e. our last change committed
alias jel="jj edit -r 'latest(all())'"
# for squash-and-go workflows
# https://steveklabnik.github.io/jujutsu-tutorial/real-world-workflows/the-squash-workflow.html
alias jss="jj squash"
alias jsi="jj squash --interactive"
# oops buttons
alias ju="jj undo"
# allows you to split the current change into multiple
alias ji="jj split"
# quickly get rid of a change
alias jab="jj abandon"
# revset info
alias J="jj log -r 'all()'" # mirror default command being log
alias jl="jj log -T builtin_log_oneline -r 'recent()'"
alias JL="jj log -T builtin_log_oneline -r 'all()'"
alias jlo="jj log --summary -T builtin_log_compact_full_description -r 'recent()'"
alias JLO="jj log --summary -T builtin_log_compact_full_description -r 'all()'"
alias jloo="jj log --patch -r 'recent()'"
alias JLOO="jj log --patch -r 'all()'"
alias jlr="jj log" # 'raw' log mode for custom opts
alias jol="jj op log"
jlf() {
jj log -r "description(substring-i:\"$*\")"
}
jlof() {
jj log --summary -r "description(substring-i:\"$*\")"
}
jloof() {
jj log --patch -r "description(substring-i:\"$*\")"
}
alias jlfw='jj log -r "wip()"'
alias jlfp='jj log -r "private()"'
# show branches (i.e. head commits) w a couple previous commits
alias jh="jj log -r 'ancestors(heads(all()), 3)'"
alias jrb="jj rebase"
# 'branching' bookmark work
alias jb="jj bookmark"
alias jbl="jj bookmark list"
jbm() { # set 'main' bookmark to current or given change
jj bookmark set -r "${1:-@}" main
}
# remote work
alias jrv="jj git remote list"
alias jp="jj git push"