Mercurial > hg > openttd
changeset 7784:84407cb523b6 draft
(svn r11334) -Codechange: add hg detection to MSVC
author | glx <glx@openttd.org> |
---|---|
date | Sun, 21 Oct 2007 17:09:44 +0000 |
parents | ea876c197cb2 |
children | 00e4d7f8a9ce |
files | projects/determineversion.vbs |
diffstat | 1 files changed, 42 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/projects/determineversion.vbs +++ b/projects/determineversion.vbs @@ -22,27 +22,33 @@ End Sub Sub UpdateFiles(version) - Dim cur_date + Dim WshShell, cur_date, revision, oExec + Set WshShell = CreateObject("WScript.Shell") cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date) - Dim revision - If version = "norev000" Then - revision = 0 - Else - revision = Mid(version, 2) - If InStr(revision, "M") Then - revision = Mid(revision, 1, InStr(revision, "M") - 1) - End If - If InStr(revision, "-") Then - revision = Mid(revision, 1, InStr(revision, "-") - 1) - End If - End If + revision = 0 + Select Case Mid(version, 1, 1) + Case "r" ' svn + revision = Mid(version, 2) + If InStr(revision, "M") Then + revision = Mid(revision, 1, InStr(revision, "M") - 1) + End If + If InStr(revision, "-") Then + revision = Mid(revision, 1, InStr(revision, "-") - 1) + End If + Case "h" ' mercurial (hg) + Set oExec = WshShell.Exec("hg log -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src") + If Err.Number = 0 Then + revision = Mid(OExec.StdOut.ReadLine(), 7) + revision = Mid(revision, 1, InStr(revision, ")") - 1) + End If + End Select UpdateFile revision, version, cur_date, "../src/rev.cpp" UpdateFile revision, version, cur_date, "../src/ottdres.rc" End Sub Function DetermineSVNVersion() - Dim WshShell, version, url, oExec + Dim WshShell, version, url, oExec, line Set WshShell = CreateObject("WScript.Shell") On Error Resume Next @@ -92,7 +98,6 @@ ' And use svn info to get the correct revision and branch information. Set oExec = WshShell.Exec("svn info ../src") If Err.Number = 0 Then - Dim line Do line = OExec.StdOut.ReadLine() If InStr(line, "URL") Then @@ -112,6 +117,28 @@ url = Mid(url, 1, InStr(2, url, "/") - 1) version = version & Replace(url, "/", "-") End If + Else + ' svn detection failed, reset error and try mercurial (hg) + Err.Clear + Set oExec = WshShell.Exec("hg tip") + If Err.Number = 0 Then + version = "h" & Mid(OExec.StdOut.ReadLine(), 19, 8) + Set oExec = WshShell.Exec("hg status ../src") + If Err.Number = 0 Then + Do + line = OExec.StdOut.ReadLine() + If Mid(line, 1, 1) <> "?" Then + version = version & "M" + Exit Do + End If + Loop While Not OExec.StdOut.atEndOfStream + End If + Set oExec = WshShell.Exec("hg branch") + If Err.Number = 0 Then + line = OExec.StdOut.ReadLine() + If line <> "default" Then version = version & "-" & line + End If + End If End If DetermineSVNVersion = version