ref: 9b69f546334e94ec191d35b15dcaace98fbdcb1b
dir: /sys/src/cmd/git/hist/
#!/bin/rc
rfork ne
. /sys/lib/git/common.rc
gitup
flagfmt='n:num count'; args='files...'
eval `''{aux/getflags $*} || exec aux/usage
if(~ $#* 0) exec aux/usage
fn dodiff {
while(t=`{read}){
h=$t(1)
o=$gitfs/object/`{git/query $h~}
c=$gitfs/object/$h
echo 'Hash:' $h
echo -n 'Date: '; date `{walk -em $c/msg}
echo -n 'Author: '; cat $c/author
echo -n 'Message: '; cat $c/msg
echo
for(f in $files){
curr=$c/tree/$f
prev=$o/tree/$f
if(! test -e $curr)
curr=/dev/null
if(! test -e $prev)
prev=/dev/null
diff -u $prev $curr
}
echo --' '
echo ⑨
echo
}
}
files=`{cleanname $*}
args=(-s $files)
if(! ~ $#num 0)
args=(-n $num $args)
git/log $args | dodiff