From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35919) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b86cf-0005CI-Mj for qemu-devel@nongnu.org; Wed, 01 Jun 2016 09:55:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b86ce-0002RC-LH for qemu-devel@nongnu.org; Wed, 01 Jun 2016 09:55:49 -0400 Sender: Paolo Bonzini References: <1464774261-648-1-git-send-email-famz@redhat.com> <1464774261-648-3-git-send-email-famz@redhat.com> <1464777632.8823.22.camel@redhat.com> <5f939153-1f8e-105e-c277-94f84a44b0a8@redhat.com> From: Paolo Bonzini Message-ID: Date: Wed, 1 Jun 2016 15:55:37 +0200 MIME-Version: 1.0 In-Reply-To: <5f939153-1f8e-105e-c277-94f84a44b0a8@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v3 2/2] Makefile: Derive "PKGVERSION" from "git describe" by default List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek , Gerd Hoffmann , Fam Zheng Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org, qemu-block@nongnu.org On 01/06/2016 13:13, Laszlo Ersek wrote: > On 06/01/16 12:40, Gerd Hoffmann wrote: >> Hi, >> >>> + git describe 2>/dev/null | tr -d '\n'; \ >>> + if ! git diff-index --quiet HEAD &>/dev/null; then \ >>> + printf -- '-dirty'; \ >>> + fi \ >> >> /me suggests "git describe --dirty --match 'v*'" >> >> Saves the extra effort to check for a dirty tree manually. > > We couldn't convince ourselves that support for "--dirty" is ubiquitous; > please see the sub-thread rooted at > . > >> Also greatly reduces the chance non-release tags are matched, so I don't >> get results like "pull-vga-20160523-1-236-g9fd5eb7". > > Since what version is "--match" supported? ;) git's own version history says 1.5.5. Another small point is that some people put the whole home directory in git, so I would test for $(SRC_PATH)/.git instead of using "git status". And no-git is unnecessary if the git part is included in parentheses. This gives: diff --git a/Makefile b/Makefile index a4d7da0..412c2b8 100644 --- a/Makefile +++ b/Makefile @@ -173,16 +173,16 @@ qemu-version.h: FORCE if test -n "$(PKGVERSION)"; then \ printf '"$(PKGVERSION)"\n'; \ else \ - printf '" ('; \ - if ! git status &>/dev/null; then \ - printf "no-git"; \ - else \ - git describe 2>/dev/null | tr -d '\n'; \ + if test -d .git; then \ + printf '" ('; \ + git describe --match 'v*' 2>/dev/null | tr -d '\n'; \ if ! git diff-index --quiet HEAD &>/dev/null; then \ printf -- '-dirty'; \ - fi \ + fi; \ + printf ')"\n'; \ + else \ + printf '""\n'; \ fi; \ - printf ')"\n'; \ fi) > $@.tmp) $(call quiet-command, cmp --quiet $@ $@.tmp || mv $@.tmp $@) Looks good? Thanks, Paolo