#!/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"