ref: 02c6058f5d529e41afb0208c69f0cbf694b02b18
dir: /sys/src/cmd/git/diff/
#!/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 -b $commit $files exit } showed=() mntgen /mnt/scratch bind $branch/tree/ /mnt/scratch/a bind . /mnt/scratch/b for(f in `$nl{git/walk -c -fRMA -b $commit $files}){ if(~ $#showed 0){ echo diff `{git/query $commit} uncommitted showed=1 } cd /mnt/scratch a=a/$f b=b/$f if(! test -f a/$f) a=/dev/null if(! test -f b/$f) b=/dev/null diff -u $a $b } exit ''