2021-05-17 01:49:45 +00:00
|
|
|
#!/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)
|
2021-06-05 13:40:28 +00:00
|
|
|
files=`{cleanname -d $gitrel $*}
|
2021-05-17 01:49:45 +00:00
|
|
|
|
|
|
|
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 '^..'
|
|
|
|
}
|
|
|
|
|
2021-08-22 17:18:35 +00:00
|
|
|
mntgen /mnt/scratch
|
|
|
|
bind $branch/tree/ /mnt/scratch/a
|
|
|
|
bind . /mnt/scratch/b
|
|
|
|
echo diff `{git/query $commit} uncommitted
|
2021-05-17 01:49:45 +00:00
|
|
|
for(f in `$nl{lsdirty | sort | uniq}){
|
2021-08-22 17:18:35 +00:00
|
|
|
cd /mnt/scratch
|
|
|
|
if(! test -f a/$f)
|
2021-05-17 01:49:45 +00:00
|
|
|
orig=/dev/null
|
2021-08-22 17:18:35 +00:00
|
|
|
if(! test -f b/$f)
|
2021-05-17 01:49:45 +00:00
|
|
|
f=/dev/null
|
2021-08-22 17:18:35 +00:00
|
|
|
diff -u a/$f b/$f
|
2021-05-17 01:49:45 +00:00
|
|
|
}
|
|
|
|
exit ''
|