# HG changeset patch # User michi_cc # Date 2011-01-18 21:27:35 # Node ID 5363240a7d0a2593864de9dc84ad2647e37a47af # Parent 68ea7f31e57c844b779115f94a1847d343cb8dc1 (svn r21840) -Change: Support tags created by hgsubversion for the revision detection. diff --git a/findversion.sh b/findversion.sh --- a/findversion.sh +++ b/findversion.sh @@ -112,6 +112,11 @@ elif [ -d "$ROOT_DIR/.hg" ]; then HASH=`LC_ALL=C hg id -i | cut -c1-12` REV="h`echo $HASH | cut -c1-8`" BRANCH=`hg branch | sed 's@^default$@@'` + TAG=`hg id -t` + if [ -n "$TAG" ] && [ $TAG != "tip" ]; then + BRANCH="" + REV=$TAG + fi REV_NR=`LC_ALL=C hg log -f -k "(svn r" -l 1 --template "{desc}\n" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"` elif [ -f "$ROOT_DIR/.ottdrev" ]; then # We are an exported source bundle diff --git a/projects/determineversion.vbs b/projects/determineversion.vbs --- a/projects/determineversion.vbs +++ b/projects/determineversion.vbs @@ -237,7 +237,7 @@ Function DetermineSVNVersion() If version = "norev000" Then ' git detection failed, reset error and try mercurial (hg) Err.Clear - Set oExec = WshShell.Exec("hg parents") + Set oExec = WshShell.Exec("hg id -i") If Err.Number = 0 Then ' Wait till the application is finished ... Do While oExec.Status = 0 @@ -245,8 +245,21 @@ Function DetermineSVNVersion() If oExec.ExitCode = 0 Then line = OExec.StdOut.ReadLine() - hash = Mid(line, InStrRev(line, ":") + 1) + hash = Left(line, 12) version = "h" & Mid(hash, 1, 8) + + ' Check if a tag is currently checked out + Err.Clear + Set oExec = WshShell.Exec("hg id -t") + If Err.Number = 0 Then + line = oExec.StdOut.ReadLine() + If Len(line) > 0 And line <> "tip" Then + version = line + branch = "" + End If ' Len(line) > 0 And line <> "tip" + End If ' Err.Number = 0 + + Err.Clear Set oExec = WshShell.Exec("hg status ../") If Err.Number = 0 Then Do