diff options
author | Mike Crowe <mcrowe@zipitwireless.com> | 2011-01-12 00:53:52 -0500 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2011-01-15 00:40:44 +0100 |
commit | 38b3439d84f4a310bd29e3dbc21dffe9119ef157 (patch) | |
tree | 56c30b9908deba0a0f7494fb9da9589202ec04d7 | |
parent | 0719e1d23aab3b445c823404fd1b8b027757bb0a (diff) |
setlocalversion: update mercurial tag parsing
The tag output of hg doesn't quite match what setlocalversion currently
expects, so update it to handle the latest format.
Signed-off-by: Mike Crowe <mcrowe@zipitwireless.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
-rwxr-xr-x | scripts/setlocalversion | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/scripts/setlocalversion b/scripts/setlocalversion index ef8729f4858..4d403844e13 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -86,12 +86,16 @@ scm_version() # Check for mercurial and a mercurial repo. if test -d .hg && hgid=`hg id 2>/dev/null`; then - tag=`printf '%s' "$hgid" | cut -s -d' ' -f2` - - # Do we have an untagged version? - if [ -z "$tag" -o "$tag" = tip ]; then - id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` + # Do we have an tagged version? If so, latesttagdistance == 1 + if [ "`hg log -r . --template '{latesttagdistance}'`" == "1" ]; then + id=`hg log -r . --template '{latesttag}'` printf '%s%s' -hg "$id" + else + tag=`printf '%s' "$hgid" | cut -d' ' -f2` + if [ -z "$tag" -o "$tag" = tip ]; then + id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` + printf '%s%s' -hg "$id" + fi fi # Are there uncommitted changes? |