Mercurial > hg > openttd
changeset 7917:99d9c1a6f690 draft
(svn r11470) -Codechange: add git detection to MSVC (michi_cc)
author | glx <glx@openttd.org> |
---|---|
date | Sun, 18 Nov 2007 22:39:02 +0000 |
parents | 5d4b12981013 |
children | 7a122ebfa7cf |
files | projects/determineversion.vbs |
diffstat | 1 files changed, 48 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/projects/determineversion.vbs +++ b/projects/determineversion.vbs @@ -41,6 +41,12 @@ revision = Mid(OExec.StdOut.ReadLine(), 7) revision = Mid(revision, 1, InStr(revision, ")") - 1) End If + Case "g" ' git + Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../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" @@ -118,25 +124,52 @@ version = version & Replace(url, "/", "-") End If Else - ' svn detection failed, reset error and try mercurial (hg) + ' svn detection failed, reset error and try git 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") + Set oExec = WshShell.Exec("git rev-parse --verify --short=8 HEAD") + Do While oExec.Status = 0 And Err.Number = 0 + ' Wait till command has finished + Loop + If Err.Number = 0 And oExec.ExitCode = 0 Then + version = "g" & oExec.StdOut.ReadLine() + Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src") + Do While oExec.Status = 0 And Err.Number = 0 + Loop + If Err.Number = 0 And oExec.ExitCode = 1 Then + version = version & "M" + End If + + Set oExec = WshShell.Exec("git symbolic-ref HEAD") 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 + line = oExec.StdOut.ReadLine() + line = Mid(line, InStrRev(line, "/")+1) + If line <> "master" Then + version = version & "-" & line + End If End If - Set oExec = WshShell.Exec("hg branch") + Else + ' try mercurial (hg) + Err.Clear + Set oExec = WshShell.Exec("hg tip") If Err.Number = 0 Then - line = OExec.StdOut.ReadLine() - If line <> "default" Then version = version & "-" & line + 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 End If End If