shithub: git9

ref: 3654fb07a6539a64e82f7e00064fad13169bddc8
dir: /diff/

View raw version
#!/bin/rc
rfork ne
. /sys/lib/git/common.rc

usage='
	git/diff [-c branch] [-s ] [file ...]
'

gitup

files=()
summarize=()
commit=HEAD
while(~ $1 -* && ! ~ $1 --){
	switch($1){
	case -c; commit=$2; shift
	case -s; summarize=1
	case *; usage
	}
	shift
}
if(~ $1 --)
	shift
if(! ~ $#* 0)
	files=`{cleanname $gitrel/$*}
branch=`{git/query -p $commit}
if(~ $summarize 1){
	git/walk -fMAR $files
	exit
}
dirty=`$nl{git/walk -c -fRMA $files}
if(! ~ $commit HEAD)
	dirty=($dirty `$nl{git/query -c $commit HEAD | subst '^..'})
for(f in $dirty){
	orig=$branch/tree/$f
	if(! test -f $orig)
		orig=/dev/null
	if(! test -f $f)
		f=/dev/null
	ape/diff -up $orig $f
}