summaryrefslogtreecommitdiff
path: root/sys/src/cmd/git/hist
blob: 7602d30f1194c1e832e24e0d4744374743d80e4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/rc
rfork ne

. /sys/lib/git/common.rc
gitup

fn dodiff {
	while(t=`{read}){
		h=$t(1)
		o=$gitroot^.git/fs/object/`{git/query $h~}
		c=$gitroot^.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