ref: 60360399b9cc0078dda7c8d17e922d928293f9f1
parent: efb769ac5415939e32e84bef8c3781fb5a15542e
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Jul 3 00:25:08 EDT 2022
git/compat: expand to cover go bootstrap go bootstrap uses more of git than we supported, so stub in enough that we can bootstrap go.
--- a/sys/src/cmd/git/compat
+++ b/sys/src/cmd/git/compat
@@ -94,7 +94,7 @@
echo `{dcmd git9/branch | sed s@^heads/@@g}shift
case *
- dprint option $opt
+ die unknown option $opt
}
shift
}
@@ -112,6 +112,15 @@
echo `{cat $gitroot/.git/refs/$b} refs/$b }
+fn cmd_rev-parse{+ switch($1){+ case --git-dir
+ echo `{git/conf -r}^/.git+ case *
+ die 'unknown rev-parse '$*
+ }
+}
+
fn cmd_remote{ if({! ~ $#* 3 && ! ~ $#* 4} || ! ~ $1 add)die unimplemented remote cmd $*
@@ -125,6 +134,44 @@
}
}
+fn cmd_log{+ count=()
+ format=''
+ while(~ $1 -*){+ switch($1){+ case --format
+ format=$2
+ shift
+ case '--format='*
+ format=`{echo $1 | sed 's/--format=//g'}+ case -n
+ count=-n$2
+ shift
+ case -n*
+ count=$1
+ case *
+ dprint option $opt
+ }
+ shift
+ }
+ @{cd $gitroot && git/fs}+ switch($format){+ case ''
+ git/log $count
+ case '%H:%ct'
+ for(c in `{git/log -s $count| awk '{print $1}'})+ echo $c:`{mtime $gitroot/.git/fs/object/$c/msg}+ case '%h %cd'
+ for(c in `{git/log -s $count| awk '{print $1}'})+ echo $c `{date `{mtime $gitroot/.git/fs/object/$c/msg}}+ }
+
+}
+
+fn cmd_show{+ cmd_log -n1 $*
+}
+
fn cmd_ls-remote{if(~ $1 -q)
shift
@@ -138,6 +185,9 @@
echo git version 2.2.0
}
+fn cmd_status{+ echo
+}
fn usage{echo 'git <command> <args>' >[1=2]
@@ -158,11 +208,20 @@
exec rc
}
+if(~ $#gitcompatdebug 1)
+ echo running $* >>/tmp/gitlog
+
+if(~ $1 -c)
+ shift 2
+if(~ $1 -c*)
+ shift 1
if(! test -f '/env/fn#cmd_'$1)
die git $1: commmand not implemented
if(! ~ $1 init && ! ~ $1 clone)
gitroot=`{git/conf -r} || die repo-echo $* >/tmp/gitlog
-cmd_$1 $*(2-)
+if(~ $#gitcompatdebug 1)
+ cmd_$1 $*(2-) | tee >>/tmp/gitlog
+if not
+ cmd_$1 $*(2-)
exit ''
--
⑨