Make gitrev more reliable

In some build methods, the gitrev is unnecessarily set to "unknown".
We can improve this by changing the gitrev to use
`git describe --always --long --dirty`.

This gets the revision even when no tag matches (--always).  It prints
the hash even when it exactly matches a tag (--long).  And if there are
uncommitted changes, it appends "-dirty", rather than failing (--dirty).

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Matthew Thode <prometheanfire@gentoo.org>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #8034
This commit is contained in:
Matthew Ahrens 2018-10-22 12:23:30 -07:00 committed by Brian Behlendorf
parent ae3d849142
commit da4f331b41

View File

@ -37,7 +37,5 @@ trap cleanup EXIT
# Check if git is installed and we are in a git repo. # Check if git is installed and we are in a git repo.
git rev-parse --git-dir > /dev/null 2>&1 git rev-parse --git-dir > /dev/null 2>&1
# Check if there are uncommitted changes
git diff-index --quiet HEAD
# Get the git current git revision # Get the git current git revision
ZFS_GIT_REV=$(git describe 2>/dev/null) ZFS_GIT_REV=$(git describe --always --long --dirty 2>/dev/null)