support/scripts/setlocalversion: fix/improve Mercurial output
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Wed, 30 Sep 2020 08:18:23 +0000 (10:18 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 3 Oct 2020 07:11:03 +0000 (09:11 +0200)
commit32eb5a1d16559d147e610e5158154ed9518f63e1
tree77bdfb3f0ccb23d776c2d785344c3c651b58e5bf
parent036c41db1ad0132063eaf76701719ffffe3f973c
support/scripts/setlocalversion: fix/improve Mercurial output

Commit 9e4ffdc8cfdf4c73f4fa8c66259a5aadaee4ae88 modified the output of
'setlocalversion' so that the Buildroot version tag is included in the
output, the version part was added in Makefile.

Due to differences in behavior of the used git and Mercurial commands, this
caused different output for the Mercurial case, in BR2_VERSION_FULL and thus
/etc/os-release and 'make print-version'. Assuming the official Buildroot
releases are tagged and no project-specific tags are present, the output
after commit 9e4ffdc8cfdf4c73f4fa8c66259a5aadaee4ae88 is:
    -hg<commit>
whereas it is expected to be something like:
    2020.02.6-hg<commit>

Change the Mercurial case in setlocalversion to behave similar to git,
looking up the latest tag if the current revision is not itself tagged.

The number of commits after the latest tag is not added, unlike in git, as
this value is not commonly present in Mercurial output, and its added value
can be disputed in this context. Even one commit could bring a huge change
to the sources, so in order to interpret the number one has to look at the
repository anyhow, in which case the commit ID can just be used.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/scripts/setlocalversion