#!/usr/bin/zsh # for showing the diffs to the master branch of a git directory according to my suckless patch structure # e.g. see dwm/st/etc git checkout master && dotfiles="/home/tiynger/.config/dotfiles/suckless" project=$(basename $(pwd)) diffdir="${dotfiles}/${project}_diffs/" olddiffdir="${dotfiles}/${project}_diffs/old/" rm -rf "$olddiffdir" && mkdir -p "$olddiffdir" && mkdir -p "$diffdir" && mv "$diffdir"*.diff "$olddiffdir" || true && make clean && rm -f config.h && git reset --hard origin/base && for branch in $(git for-each-ref --format='%(refname)' refs/heads/ | cut -d'/' -f3); do if [ "$branch" != "master" ];then git diff base..$branch > "${diffdir}${project}_${branch}.diff" fi done