#!/bin/rc rfork ne . /sys/lib/git/common.rc gitup flagfmt='c:commit branch, s:summarize'; args='[file ...]' eval `''{aux/getflags $*} || exec aux/usage if(~ $#commit 0) commit=HEAD files=() if(! ~ $#* 0) files=`{cleanname -d $gitrel $*} branch=`{git/query -p $commit} if(~ $summarize 1){ git/walk -fMAR $files exit } fn lsdirty { git/walk -c -fRMA $files if(! ~ $commit HEAD) git/query -c $commit HEAD | subst '^..' } mntgen /mnt/scratch bind $branch/tree/ /mnt/scratch/a bind . /mnt/scratch/b echo diff `{git/query $commit} uncommitted for(f in `$nl{lsdirty | sort | uniq}){ cd /mnt/scratch if(! test -f a/$f) orig=/dev/null if(! test -f b/$f) f=/dev/null diff -u a/$f b/$f } exit ''