support/scripts/setlocalversion: fix detection of hg revision when _not_ on branch...
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Wed, 30 Jan 2019 20:15:07 +0000 (21:15 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 4 Feb 2019 20:25:33 +0000 (21:25 +0100)
When Buildroot is stored in a Mercurial repository on a branch other than
'default' ('master' in git terms), setlocalversion (used to populate
/etc/os-release) will incorrectly think that this is a tagged version and
will NOT print out the revision hash.

This is due to the fact that the output of 'hg id' is assumed to be
    "<revision> <tags-if-any>"
but when on a branch it actually is:
    "<revision> (<branch>) <tags-if-any>"

To let setlocalversion receive the output it expects, explicitly ask 'hg id'
to retrieve only the revision hash and any tags, ommitting any branch
information.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
support/scripts/setlocalversion

index 33cd605bf3352f6298563b1458ca8aae3639f356..45f4283bb15bbb6a1c744e74e585f47558b04bc0 100755 (executable)
@@ -53,7 +53,7 @@ if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
 fi
 
 # Check for mercurial and a mercurial repo.
-if hgid=`hg id 2>/dev/null`; then
+if hgid=`hg id --id --tags 2>/dev/null`; then
        tag=`printf '%s' "$hgid" | cut -d' ' -f2 --only-delimited`
 
        # Do we have an untagged version?