Dotfiles/site-modules/core/files/oh-my-zsh/custom/sapling.zsh
Ade Attwood 29618280a1 feat(sapling): move to using the default log template
Previously we have move the templates in to the sapling config. Now we
can use that everywhere by default so everything looks the same.
2024-04-10 19:21:49 +01:00

45 lines
1.4 KiB
Bash

# Alias sl to s. This is so we can keep the workflow much the same as git. You
# can mostly replace `g` with `s` and you are using sapling instead of git.
alias s="\\sl"
alias sl="\\sl log --pager never --remote -r '.::top() or last(::., 40)'"
alias sc="\\sl commit -iv"
alias sd="\\sl diff"
alias ss="\\sl status"
alias sco="\\sl log -r 'heads(draft())' | fzf --ansi | cut -d' ' -f3 | xargs \\sl goto"
function sl-convert() {
if ! [ -d .git ]; then
echo "Not a git repository. You can only convert a git repo in to a sapling"
return 1
fi
if [ -s .sl ]; then
echo "Already converted to sapling."
return 1
fi
\sl clone --git "file://${PWD}/.git" .tmp && mv .tmp/.sl . && rm -rf .tmp
if [[ "$(git remote get-url --all origin)" == *"github.com"* ]]; then
local new_path="$(git remote get-url --all origin | sed 's/git@github.com:/https:\/\/github.com\//')"
echo ""
echo "Setting sapling path to '${new_path}'"
\sl paths --add default "${new_path}"
else
echo ""
echo "[WARNING] Not a github url, you will need to set your path manually"
echo ""
fi
echo ""
echo ""
echo "Converted yor git repo to a sapling repo."
echo ""
echo "Please run 'sl log' to ensure the command has worked. You will also need to"
echo "give 'sl config' a check to ensure your path has been set correctly. Then you"
echo "can remove the .git directory"
}