From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id AFFA3399E030 for ; Fri, 16 Jul 2021 09:36:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFFA3399E030 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-221-wRQbT_2HPza_xTnwOQRVWQ-1; Fri, 16 Jul 2021 05:36:20 -0400 X-MC-Unique: wRQbT_2HPza_xTnwOQRVWQ-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A3F77CC622; Fri, 16 Jul 2021 09:36:18 +0000 (UTC) Received: from tucnak.zalov.cz (ovpn-112-143.ams2.redhat.com [10.36.112.143]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 112DB1017CE8; Fri, 16 Jul 2021 09:36:17 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.16.1/8.16.1) with ESMTPS id 16G9aENH3582706 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 16 Jul 2021 11:36:15 +0200 Received: (from jakub@localhost) by tucnak.zalov.cz (8.16.1/8.16.1/Submit) id 16G9a8Df3582705; Fri, 16 Jul 2021 11:36:08 +0200 Date: Fri, 16 Jul 2021 11:36:08 +0200 From: Jakub Jelinek To: Richard Biener Cc: Serge Belyshev , GCC Patches Subject: Re: [PATCH] gcc_update: use gcc-descr git alias for revision string in gcc/REVISION Message-ID: <20210716093608.GF2380545@tucnak> Reply-To: Jakub Jelinek References: <878s271je5.fsf@depni.sinp.msu.ru> <20210716072941.GC2380545@tucnak> MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jul 2021 09:36:25 -0000 On Fri, Jul 16, 2021 at 11:22:27AM +0200, Richard Biener wrote: > > Yeah, that will mean consistency no matter whether one has the > > customizations installed or not. > > And, you don't want the effect of $GCC_GIT gcc-descr but $GCC_GIT gcc-descr HEAD > > (the default is $GCC_GIT gcc-descr master). > > As you want to use gcc-descr without --full, I think > > 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 > > will do it. Perhaps rename the r, o, rr and m temporaries. > > Note the new form will be more difficult to use for people not having > the customizations > installed. It also will likely break when gcc-update is not invoked > on official branches? It will not break, on the non-official branches it will just print the hash alone. That is the --is-ancestor check in there... People without the customizations can easily look it up using gcc.gnu.org, https://gcc.gnu.org/r12-1234 works. The advantage of the r12-1234 form is that it is short, unique and easily comparable (what is older vs. newer) and clearly says what is official release branch. Alternative would be to use git gcc-descr --full form with the hash part reduced say to 11 or 12 chars, i.e. r12-1234-g9147affc04e1 then it works even without the customizations (can be fed directly to git) and still has the unique and easily comparable properties, but isn't that good on the short side anymore. In the above script just using revision=${r}-g${revision}; instead of revision=$r; would do it. Perhaps also replace both HEAD occurences with $revision Jakub