Plan 9 from Bell Labs’s /usr/web/sources/contrib/yk/lab/git/diff

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#!/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 -d $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 '^..'
}

showed=()
mntgen /mnt/scratch
bind $branch/tree/ /mnt/scratch/a
bind . /mnt/scratch/b
for(f in `$nl{lsdirty | sort | uniq}){
	if(~ $#showed 0){
		echo diff `{git/query $commit} uncommitted
		showed=1
	}
	cd /mnt/scratch
	a=a/$f
	b=b/$f
	if(! test -f a/$f)
		a=/dev/null
	if(! test -f b/$f)
		b=/dev/null
	diff -u $a $b
}
exit ''

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].