changeset 17102:04d7d238167c draft

(svn r21839) -Change: Support tags created by git-svn for the revision detection.
author michi_cc <michi_cc@openttd.org>
date Tue, 18 Jan 2011 21:27:30 +0000
parents 0c415ae476a0
children 473b6165a404
files findversion.sh projects/determineversion.vbs
diffstat 2 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/findversion.sh
+++ b/findversion.sh
@@ -99,6 +99,11 @@
 		# No rev? Maybe it is a custom git-svn clone
 		REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
 	fi
+	TAG=`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null`
+	if [ -n "$TAG" ]; then
+		BRANCH=""
+		REV=$TAG
+	fi
 elif [ -d "$ROOT_DIR/.hg" ]; then
 	# We are a hg checkout
 	if [ -n "`hg status | grep -v '^?'`" ]; then
--- a/projects/determineversion.vbs
+++ b/projects/determineversion.vbs
@@ -201,7 +201,7 @@
 						End If ' line <> "master"
 					End If ' Err.Number = 0
 
-					Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../")
+					Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1")
 					if Err.Number = 0 Then
 						revision = Mid(oExec.StdOut.ReadLine(), 7)
 						revision = Mid(revision, 1, InStr(revision, ")") - 1)
@@ -210,13 +210,26 @@
 						' No revision? Maybe it is a custom git-svn clone
 						' Reset error number as WshShell.Exec will not do that on success
 						Err.Clear
-						Set oExec = WshShell.Exec("git log --pretty=format:%b --grep=" & Chr(34) & "git-svn-id:.*@[0-9]*" & Chr(34) & " -1 ../")
+						Set oExec = WshShell.Exec("git log --pretty=format:%b --grep=" & Chr(34) & "git-svn-id:.*@[0-9]*" & Chr(34) & " -1")
 						If Err.Number = 0 Then
 							revision = oExec.StdOut.ReadLine()
 							revision = Mid(revision, InStr(revision, "@") + 1)
 							revision = Mid(revision, 1, InStr(revision, " ") - 1)
 						End If ' Err.Number = 0
 					End If ' revision = ""
+
+					' Check if a tag is currently checked out
+					Err.Clear
+					Set oExec = WshShell.Exec("git name-rev --name-only --tags --no-undefined HEAD")
+					If Err.Number = 0 Then
+						' Wait till the application is finished ...
+						Do While oExec.Status = 0
+						Loop
+						If oExec.ExitCode = 0 Then
+							version = oExec.StdOut.ReadLine()
+							branch = ""
+						End If ' oExec.ExitCode = 0
+					End If ' Err.Number = 0
 				End If ' Err.Number = 0
 			End If ' oExec.ExitCode = 0
 		End If ' Err.Number = 0