ref: c44adda7a7ce4f2ee4babf384dc9d321d21e34ad
dir: /export/
#!/bin/rc
rfork ne
. /sys/lib/git/common.rc
usage='
git/export [query]
'
gitup
q=$*
if(~ $#q 0)
q=HEAD
commits=`{git/query $q || die $status}
scratch=/tmp/gitexport.$pid
mkdir -p $scratch
mkdir $scratch/a $scratch/b
n=1
m=$#commits
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 | awk '{print $1}'}}
<$cp/msg awk '
BEGIN {RS = ""; FS = "\n"}
NR == 1 {
n = ENVIRON["n"]
m = ENVIRON["m"]
if(m > 1)
patch = sprintf("[PATCH %d/%d]", n, m)
else
patch = "[PATCH]"
printf "Subject: %s", patch
for(i = 1; i <= NF; i++)
printf " %s", $i
printf "\n\n"
next
}
{print; printf "\n"}'
ape/diff -urN a b
}
if(! ~ $n $m)
echo
n=`{echo $n + 1 | bc}
}
rm $scratch/a $scratch/b
rm $scratch