| #!/bin/sh |
| |
| # Script to describe a GCC revision based on git hash |
| |
| short=no |
| long=no |
| c=master |
| |
| for arg in "$@" |
| do |
| case "$arg" in |
| --short) short=yes long=no |
| ;; |
| --long|--full) long=yes short=no |
| ;; |
| *) c=$arg |
| esac |
| done |
| |
| if test x$short = xyes; then |
| r=$(git describe --all --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'); |
| elif test x$long = xyes; then |
| r=$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p') |
| else |
| r=$(git describe --all --abbrev=14 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p'); |
| expr match ${r:-no} 'r[0-9]\+$' >/dev/null && r=${r}-0-g$(git rev-parse $c); |
| fi; |
| if test -n $r; then |
| o=$(git config --get gcc-config.upstream); |
| rr=$(echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); |
| if git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then |
| m=releases/gcc-$rr; |
| else |
| m=master; |
| fi; |
| git merge-base --is-ancestor $c ${o:-origin}/$m && echo ${r}; |
| fi; |