summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2022-08-10 11:14:55 +0000
committerOri Bernstein <ori@eigenstate.org>2022-08-10 11:14:55 +0000
commit4521ae32bb95562b4210c23bee02a9fe1b1e3137 (patch)
tree18931bf8150d8788e318e191ed2ee1604c3a47c0 /sys/src
parentec98c2e178ee0e247e0e425e5e74393c62d4ce36 (diff)
git/hist: add command to show history of files
Diffstat (limited to 'sys/src')
-rwxr-xr-xsys/src/cmd/git/hist34
-rw-r--r--sys/src/cmd/git/mkfile1
2 files changed, 35 insertions, 0 deletions
diff --git a/sys/src/cmd/git/hist b/sys/src/cmd/git/hist
new file mode 100755
index 000000000..2c0f64f72
--- /dev/null
+++ b/sys/src/cmd/git/hist
@@ -0,0 +1,34 @@
+#!/bin/rc
+rfork ne
+
+. /sys/lib/git/common.rc
+gitup
+
+fn dodiff {
+ while(t=`{read}){
+ h=$t(1)
+ o=.git/fs/object/`{git/query $h~}
+ c=.git/fs/object/$h
+ echo 'Hash:' $h
+ echo -n 'Date: '; date `{walk -em $c/msg}
+ echo -n 'Author: '; cat $c/author
+ echo -n 'Message: '; cat $c/msg
+ echo
+ for(f in $files){
+ curr=$c/tree/$f
+ prev=$o/tree/$f
+ if(! test -e $curr)
+ curr=/dev/null
+ if(! test -e $prev)
+ prev=/dev/null
+ diff -u $prev $curr
+ }
+ echo
+ }
+}
+
+if(~ $#* 0)
+ die usage: $0 files...
+
+files=`{cleanname $gitrel/$*}
+git/log -s $files | dodiff
diff --git a/sys/src/cmd/git/mkfile b/sys/src/cmd/git/mkfile
index e8df434ff..d69be86dd 100644
--- a/sys/src/cmd/git/mkfile
+++ b/sys/src/cmd/git/mkfile
@@ -21,6 +21,7 @@ RC=\
compat\
diff\
export\
+ hist\
import\
init\
merge\