#!/bin/zsh # Log local and upstream commits side by side # Useful when the history has been manipulated loc="$(git lo --color=always "$@")" upstream="$(git lo --color=always @{push} "$@")" countLoc=$(echo $loc | wc -l) countUp=$(echo $upstream | wc -l) halfcols="$(expr $(tput cols) / 2)" for i in $(seq 1 $(expr $countLoc \& $countLoc \< $countUp \| $countUp)); do printf "%-${halfcols}s $(test $halfcols -lt 100 && echo '\\n')%s\n" "$(echo $loc | head -n $i | tail -1)" "$(echo $upstream | head -n $i | tail -1)" # use columns instead? - need to interleave! done | ${PAGER:-less}