diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-05-16 18:49:45 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-05-16 18:49:45 -0700 |
commit | 1ee1bfaa8c5644092e0c1ca3985ee74813bbfb1d (patch) | |
tree | 9be6163e8bcd0bd43b4016e2bfeb9571a548536e /sys/src/cmd/git/diff | |
parent | 013b2cad191eef50fd4e69c38f1544c5083b640d (diff) |
git: got git?
Add a snapshot of git9 to 9front.
Diffstat (limited to 'sys/src/cmd/git/diff')
-rwxr-xr-x | sys/src/cmd/git/diff | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/sys/src/cmd/git/diff b/sys/src/cmd/git/diff new file mode 100755 index 000000000..be74676d9 --- /dev/null +++ b/sys/src/cmd/git/diff @@ -0,0 +1,37 @@ +#!/bin/rc +rfork ne +. /sys/lib/git/common.rc + +gitup + +flagfmt='c:commit branch, s:summarize'; args='[file ...]' +eval `''{aux/getflags $*} || exec aux/usage + +if(~ $#commit 0) + commit=HEAD + +files=() +if(! ~ $#* 0) + files=`{cleanname $gitrel/$*} + +branch=`{git/query -p $commit} +if(~ $summarize 1){ + git/walk -fMAR $files + exit +} + +fn lsdirty { + git/walk -c -fRMA $files + if(! ~ $commit HEAD) + git/query -c $commit HEAD | subst '^..' +} + +for(f in `$nl{lsdirty | sort | uniq}){ + orig=$branch/tree/$f + if(! test -f $orig) + orig=/dev/null + if(! test -f $f) + f=/dev/null + diff -u $orig $f +} +exit '' |