ref: e2232a8ce3e56bd8bc0d6a83d82c28e49beacfec
parent: 511f40667c666de4d861e60b3bf089c3abcefd1b
author: glenda <glenda@9front.local>
date: Wed Aug 28 21:26:49 EDT 2019
Implement 'git/export' to export commits.
--- /dev/null
+++ b/export
@@ -1,0 +1,45 @@
+#!/bin/rc
+
+rfork ne
+
+nl='
+'
+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
+for(c in $commits){+ cp=`{git/query -p $c}+ pp=`{git/query -p $c'^'}+
+ @{+ rfork n
+ cd $scratch
+ mkdir a
+ mkdir b
+ bind $pp/tree a
+ bind $cp/tree b
+
+ echo From $c
+ echo From: `{cat $cp/author}+ echo Date: `{date -t `{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
--- a/mkfile
+++ b/mkfile
@@ -16,6 +16,7 @@
clone\
commit\
diff\
+ export\
init\
log\
merge\
--
⑨