fi
# Check for mercurial and a mercurial repo.
+# In the git case, 'git describe' will show the latest tag, and unless we are
+# exactly on that tag, the number of commits since then, and last commit id.
+# Mimic something similar in the Mercurial case.
if hgid=`HGRCPATH= hg id --id --tags 2>/dev/null`; then
tag=`printf '%s' "$hgid" | cut -d' ' -f2 --only-delimited`
# Do we have an untagged version?
if [ -z "$tag" -o "$tag" = tip ]; then
+ # current revision is not tagged, determine latest tag
+ latesttag=`HGRCPATH= hg log -r. -T '{latesttag}' 2>/dev/null`
+ # In case there is more than one tag on the latest tagged commit,
+ # 'latesttag' will separate them by colon (:). We'll retain this.
+ # In case there is no tag at all, 'null' will be returned.
+ if [ "$latesttag" = "null" ]; then
+ latesttag=''
+ fi
+
+ # add the commit id
id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
- printf '%s%s' -hg "$id"
+ printf '%s%s%s' "${latesttag}" -hg "$id"
else
+ # current revision is tagged, just print the tag
printf ${tag}
fi