Re: [Resend] [PATCH] Fix scripts/setlocalversion with git

From: Nico Schottelius
Date: Sat Apr 18 2009 - 05:17:19 EST


Sam Ravnborg [Fri, Apr 17, 2009 at 11:58:02PM +0200]:
> I thought I already applied a similar fix.
> Care to resend.

- git: git://git.schottelius.org/foreign/linux-2.6 (URL changed!):
f43ba0be1204e7c26cc700a75bdb688a788fbf2fcommit
- Original patch attached (p1)
- Diff against your tree attached (p2)

Nico

--
Think about Free and Open Source Software (FOSS).
http://nico.schottelius.org/documentations/foss/the-term-foss/

PGP: BFE4 C736 ABE5 406F 8F42 F7CF B8BE F92A 9885 188C
commit f43ba0be1204e7c26cc700a75bdb688a788fbf2f
Author: Nico Schottelius <nico@xxxxxxxxxxxxxxxxxxx>
Date: Tue Apr 7 17:27:18 2009 +0200

[PATCH] Fix scripts/setlocalversion with git

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@xxxxxxxxxxxxxxxxxxx>

diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index f6946cf..296669a 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -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 annotated 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?
--- kbuild-fixes/scripts/setlocalversion 2009-04-18 09:44:18.142135489 +0200
+++ linux-2.6/scripts/setlocalversion 2009-04-07 17:37:33.131483677 +0200
@@ -10,18 +10,17 @@

# 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 annotated 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?
if git config --get svn-remote.svn.url >/dev/null; then
- printf -- '-svn%s' "`git svn find-rev $head`"
+ printf -- '-svn%s' "`git-svn find-rev $head`"
fi

# Are there uncommitted changes?

Attachment: signature.asc
Description: Digital signature