blob: 8dee018a2348e29ca3c53538aa4a9059c03f44a0 [file] [log] [blame]
#!/bin/sh
inst_prefix=$(
IFS=:
for p in $PATH
do
probed=${p%/git-active/bin}
if test "$probed" != "$p"
then
echo "$probed"
exit
fi
done
echo $HOME
)
LF='
'
output=
for v in maint master next jch seen
do
installed=$(
test -f "$inst_prefix/git-$v/bin/git" &&
"$inst_prefix/git-$v/bin/git" version
)
dirty=
if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$')
then
:
elif version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)\.dirty$')
then
dirty=" (with changes)"
elif version=v$(expr "$installed" : \
'git version \(.*\)\.rc[0-9]*$')
then
version="$version"-$(expr "$installed" : \
'git version .*\.\(rc[0-9]*\)$')
else
version=v$(expr "$installed" : 'git version \(.*\)')
fi
version=$(git rev-parse --verify "$version^0" 2>/dev/null)
revision=$(git show-ref -s --verify "refs/heads/$v")
if test "z$version" = "z$revision"
then
in= out=
if test -z "$dirty"
then
installed=
else
installed=" $installed$dirty"
fi
elif test -z "$version"
then
in="" out=""
installed=" none"
else
installed=$(git describe --long $version)
case "$dirty" in
'')
;;
?*)
installed="$installed$dirty"
esac
in="" out="" installed=" $installed"
fi
output="$output${output:+$LF}"
output="$output$in$v$out$installed $(git describe --long refs/heads/$v)"
done
echo "$output"
echo "$output" | sha1sum | sed -e 's/ .*//'