shithub: git9

ref: 26b0b7a8d040c802af32e57184df45b9eaaa4491
dir: /diff/

View raw version
#!/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