setlocalversion used to use an abbreviated git commit sha1 to generate the tag. This was changed in commit d882421f4e08ddf0a94245cdbe516db260aa6f41 "kbuild: change CONFIG_LOCALVERSION_AUTO to use a git-describe-ish format" to use git describe to come up with a tag. Which is nice, but git describe sometimes can't describe the revision. Commit 56b2f0706d82535fd8d85503f2dcc0be40c8e55d ("setlocalversion: do not describe if there is nothing to describe") addressed this, but there is still no tag generated. So, generate a plain abbreviated sha1 tag like setlocalversion used to when git describe comes up short.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -9,11 +9,13 @@ usage() { · 8 unmodified lines | ||
| 9 | 9 | cd "${1:-.}" || usage |
| 10 | 10 | |
| 11 | 11 | # Check for git and a git repo. |
| 12 | −if head=`git rev-parse --verify HEAD 2>/dev/null`; then | |
| 12 | +if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then | |
| 13 | 13 | # Do we have an untagged version? |
| 14 | 14 | if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then |
| 15 | 15 | if tag=`git describe 2>/dev/null`; then |
| 16 | 16 | echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' |
| 17 | + else | |
| 18 | + printf '%s%s' -g $head | |
| 17 | 19 | fi |
| 18 | 20 | fi |
| 19 | 21 | |