Based on discussion I've chosen open-coded version without commit hash. >> > > ... Perhaps rename the r, o, rr and m temporaries.
I like it better with short names, there is no other code in that script to clash with. (Also, two adjacent case branches for hg and svn are essentialy dead now). >> ... Perhaps also replace both HEAD occurences with $revision not sure about that: should not they be exactly equivalent in all cases? --- gcc_update: use human readable name for revision string in gcc/REVISION contrib/Changelog: * gcc_update: derive human readable name for HEAD using git describe like "git gcc-descr" does. Drop "revision" from gcc/REVISION. --- contrib/gcc_update | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/contrib/gcc_update b/contrib/gcc_update index 80fac9fc995..558926b3a2d 100755 --- a/contrib/gcc_update +++ b/contrib/gcc_update @@ -332,7 +332,22 @@ case $vcs_type in exit 1 fi - revision=`$GCC_GIT log -n1 --pretty=tformat:%p:%t:%H` + # Open-coded version of "git gcc-descr" from contrib/gcc-git-customization.sh + revision=`$GCC_GIT log -n1 --pretty=tformat:%h` + r=`$GCC_GIT describe --all --match 'basepoints/gcc-[0-9]*' HEAD \ + | 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'`; + if test -n $r; then + o=`$GCC_GIT config --get gcc-config.upstream`; + rr=`echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'`; + if $GCC_GIT rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then + m=releases/gcc-$rr; + else + m=master; + fi; + if $GCC_GIT merge-base --is-ancestor HEAD ${o:-origin}/$m; then + revision=$r; + fi + fi branch=`$GCC_GIT name-rev --name-only HEAD || :` ;; @@ -414,6 +429,6 @@ rm -f LAST_UPDATED gcc/REVISION date echo "`TZ=UTC date` (revision $revision)" } > LAST_UPDATED -echo "[$branch revision $revision]" > gcc/REVISION +echo "[$branch $revision]" > gcc/REVISION touch_files_reexec