ref: 5b4249105002f51a84e02d29f1678ad52cf2e96b
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}
n=1
m=$#commits
mntgen /mnt/scratch
for(c in $commits){
cp=`{git/query -p $c}
pp=`{git/query -p $c'^'}
@{
rfork n
cd /mnt/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}
}