shithub: git9

ref: 92eaddb3cdb3bd9921d9178b0d21ecc0771d76d1
dir: /export/

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

usage='
	git/export [query]
'

if(! cd `{git/conf -r})
	exit 'not in git repository'
git/fs
q=$*
if(~ $#q 0)
	q=HEAD
commits=`{git/query $q}
x=$status
if(! ~ $x ''){
	echo 'could not find commits: '$x
	exit $x
}

scratch=/tmp/gitexport.$pid
mkdir -p $scratch
mkdir $scratch/a $scratch/b
for(c in $commits){
	cp=`{git/query -p $c}
	pp=`{git/query -p $c'^'}

	@{
		rfork n
		cd $scratch
		bind $pp/tree a
		bind $cp/tree b
		
		echo From $c
		echo From: `{cat $cp/author}
		echo Date: `{date -m `{mtime $cp/author}}
		echo Subject: [PATCH] `{sed 1q $cp/msg}
		echo
		sed '1d' $cp/msg

		ape/diff -urN a b
	}
}
rm $scratch/a $scratch/b
rm $scratch