ref: d4cf8be779e7eab5fd6667ef870b6e620a1d9709
dir: /sys/src/cmd/git/rebase/
#!/bin/rc -e
rfork en
. /sys/lib/git/common.rc
gitup
flagfmt='s:src src, n:nocommit'; args='onto'
eval `''{aux/getflags $*} || exec aux/usage
if(~ $#* 0) exec aux/usage
if(~ $#src 0)
src=`{git/branch}
nflag=''
if(~ $nocomit 1)
nflag='-n'
dst=`{git/query $1}
com=`{git/query $dst $src @}
if(~ $dst $com)
die 'nothing to rebase, doofus'
git/log -se $dst'..'$src | awk '
BEGIN{
src=ENVIRON["src"];
dst=ENVIRON["dst"];
}
{
if(!done)
print "git/branch -nb "dst" rebase.wip";
c=$1; $1="";
print "git/export "c" | git/import '$nflag'#"$0;
done=1
}
END{
if(!done)
print "git/branch -nb "dst" ";
else{
print "git/branch -nb rebase.wip "src
print "git/branch -r rebase.wip";
}
}'