kbuild: fix scripts/setlocalversion with git
authorNico Schottelius <nico-linux-20090330@schottelius.org>
Sat, 25 Apr 2009 07:48:39 +0000 (09:48 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Fri, 1 May 2009 08:54:04 +0000 (10:54 +0200)
When using trees like wireless-testing, which have untagged tags,
scripts/setlocalversion does not display any git indication for
localversion.

This patch fixes it: If git is available, but no usable tag is found,
it uses -g${head}. It skips the detection of unanottated tags via
git name-rev.

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
scripts/setlocalversion

index 47e75b6..32c8554 100755 (executable)
@@ -10,13 +10,12 @@ cd "${1:-.}" || usage
 
 # Check for git and a git repo.
 if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
-       # Do we have an untagged version?
-       if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
-               if tag=`git describe 2>/dev/null`; then
-                       echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
-               else
-                       printf '%s%s' -g $head
-               fi
+       # Do we have an untagged tag?
+       if atag=`git describe 2>/dev/null`; then
+               echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
+       # add -g${head}, if there is no usable tag
+       else
+               printf '%s%s' -g $head
        fi
 
        # Is this git on svn?