2013-04-16 05:01:56

by Runzhen Wang

[permalink] [raw]
Subject: [PATCH] perf tool: fix the perf --version bug

From 4d629cfb265beece1aae2e3fdf603e36a321f785 Mon Sep 17 00:00:00 2001
From: Runzhen Wang <[email protected]>
Date: Mon, 15 Apr 2013 23:17:15 -0400
Subject: [PATCH] perf tool: fix the perf --version bug

The perf --version can't print the right version
information when reset it to an earlier commit.

For example, at present the version is:
# ./perf --version
perf version 3.9.rc6.gf8378f

then, I reset it to an earlier version, say v3.8-rc7
# git reset --hard v3.8-rc7
# make

However, the ./perf --version prints a wrong result:
# ./perf --version
perf version 3.9.rc6.g836dc9

Using 'git describe' instead of 'git tag' can fix this problem.

Signed-off-by: Runzhen Wang <[email protected]>
---
tools/perf/util/PERF-VERSION-GEN | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/perf/util/PERF-VERSION-GEN
b/tools/perf/util/PERF-VERSION-GEN
index 055fef3..ec3dd86 100755
--- a/tools/perf/util/PERF-VERSION-GEN
+++ b/tools/perf/util/PERF-VERSION-GEN
@@ -14,9 +14,8 @@ LF='
# otherwise try to get the version from the kernel Makefile
#
if test -d ../../.git -o -f ../../.git &&
- VN=$(git tag 2>/dev/null | tail -1 | grep -E "v[0-9].[0-9]*")
+ VN=$(git describe --match 'v[0-9].[0-9]*' --abbrev=4 HEAD 2>/dev/null)
then
- VN=$(echo $VN"-g"$(git log -1 --abbrev=4 --pretty=format:"%h" HEAD))
VN=$(echo "$VN" | sed -e 's/-/./g');
else
VN=$(MAKEFLAGS= make -sC ../.. kernelversion)
--
1.7.10.1


2013-04-24 08:19:45

by Runzhen Wang

[permalink] [raw]
Subject: Re: [PATCH] perf tool: fix the perf --version bug

ping~ :)
On 04/16/2013 01:00 PM, Runzhen Wang wrote:
>
> The perf --version can't print the right version
> information when reset it to an earlier commit.
>
> For example, at present the version is:
> # ./perf --version
> perf version 3.9.rc6.gf8378f
>
> then, I reset it to an earlier version tag, say v3.8-rc7
> # git reset --hard v3.8-rc7
> # make
>
> However, the ./perf --version prints a wrong result:
> # ./perf --version
> perf version 3.9.rc6.g836dc9
>
> Using 'git describe' instead of 'git tag' can fix this problem.
>
> Signed-off-by: Runzhen Wang <[email protected]>
> ---
> tools/perf/util/PERF-VERSION-GEN | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/PERF-VERSION-GEN
> b/tools/perf/util/PERF-VERSION-GEN
> index 055fef3..ec3dd86 100755
> --- a/tools/perf/util/PERF-VERSION-GEN
> +++ b/tools/perf/util/PERF-VERSION-GEN
> @@ -14,9 +14,8 @@ LF='
> # otherwise try to get the version from the kernel Makefile
> #
> if test -d ../../.git -o -f ../../.git &&
> - VN=$(git tag 2>/dev/null | tail -1 | grep -E "v[0-9].[0-9]*")
> + VN=$(git describe --match 'v[0-9].[0-9]*' --abbrev=4 HEAD 2>/dev/null)
> then
> - VN=$(echo $VN"-g"$(git log -1 --abbrev=4 --pretty=format:"%h" HEAD))
> VN=$(echo "$VN" | sed -e 's/-/./g');
> else
> VN=$(MAKEFLAGS= make -sC ../.. kernelversion)