ref: f8bf36dc99975ea582975096522f6acece3e4bf6
dir: /diff/
#!/bin/rc
rfork ne
fn usage{
echo usage: $0 '[-b branch] [file ...]' >[1=2]
exit usage
}
if(! cd `{git/conf -r}){
echo 'not a git repository' >[1=2]
exit notgit
}
git/fs
while(~ $1 -* && ! ~ $1 --){
switch($1){
case -b; branch=`{git/query $2}; shift
case *; usage
}
shift
}
if(~ $1 --) shift
if(~ $#branch 0)
branch=`{git/branch}
dirty=`{git/walk | awk '/^[MAR]/ {print $2}'}
if(! ~ $#* 0){
echo $dirty | sed 's/ /\n/g' | sort >/tmp/git.$pid.diff.dirty
echo $* | sed 's/ /\n/g' | sort >/tmp/git.$pid.diff.args
dirty=`{join /tmp/git.$pid.diff.dirty /tmp/git.$pid.diff.args}
}
for(f in $dirty){
orig=/mnt/git/branch/$branch/tree/$f
if(! test -f $orig)
orig=/dev/null
if(! test -f $f)
f=/dev/null
ape/diff -up $orig $f
}
rm -f /tmp/git.$pid.diff.dirty /tmp/git.$pid.diff.args