[PATCH v2] gcc_update: use human readable name for revision string in gcc/REVISION

Richard Biener richard.guenther@gmail.com
Mon Jul 19 10:39:37 GMT 2021


On Fri, Jul 16, 2021 at 12:37 PM Serge Belyshev
<belyshev@depni.sinp.msu.ru> wrote:
>
> Based on discussion I've chosen open-coded version without commit hash.

As said I'd prefer one with (shortened) hash, but then I'm not angry
if people agree on sth else.

> >> > > ...  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


More information about the Gcc-patches mailing list