#!/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 jds="jj describe" alias jc="jj commit" # finding out the current snapshot js() { if [ "$#" -eq 0 ]; then jj status else jj show "$*" fi } 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 jee="jj next --edit" # 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" # for damn,-forgot-to-split-this-commit workflow # Creates a new commit before with your selected changes, lets you describe it and carry on alias ji="jj new -B@ --no-edit && jj squash --interactive && jj edit '@-' && jj describe && jj edit '@+'" # revset info alias jl="jj log -T builtin_log_oneline" alias jL="jj log -r 'all()'" alias jlo="jj log --summary" alias jLO="jj log --summary -r 'all()'" alias jloo="jj log --patch" alias jol="jj op log" jlf() { jj log -r "description($*)" } jlof() { jj log --summary -r "description($*)" } jloof() { jj log --patch -r "description($*)" } # show branches (i.e. head commits) w a couple previous commits alias jb="jj log -r 'ancestors(heads(all()), 3)'" alias jrb="jj rebase" alias jp="jj git push"