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 <runzhen@xxxxxxxxxxxxxxxxxx>
---
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)