diff --git a/SubWCRev.bat b/SubWCRev.bat index ea5ba4a1b0..927371554e 100755 --- a/SubWCRev.bat +++ b/SubWCRev.bat @@ -1,10 +1,34 @@ @echo off -rem first, generate one with sed using no revision number, in case svn isnt available -"%~1..\sed.exe" s/\$WCREV\$/0/ < "%~1properties\svnrev_template" > "%~1properties\svnrev.cs" +set TEMPFILE="%TEMP%-%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%" +set SVNREV="%~1properties\svnrev.cs" -rem try generating one from svn now. this will fail if svn is nonexistent, so... -"%~1..\SubWCRev.exe" "%~1\.." "%~1properties\svnrev_template" "%~1properties\svnrev.cs" +rem generate a wvnrev with sed using no revision number, in case svn isnt available +@"%~1..\sed.exe" s/\$WCREV\$/0/ < "%~1properties\svnrev_template" > %TEMPFILE% + +rem try generating svnrev from svn now. this will fail if svn is nonexistent, so... +@"%~1..\SubWCRev.exe" "%~1\.." "%~1properties\svnrev_template" %TEMPFILE% > nul rem ... ignore the error SET ERRORLEVEL=0 + +rem if we didnt even have a svnrev, then go ahead and copy it +if not exist %SVNREV% ( + @copy /y %TEMPFILE% %SVNREV% +) else if exist %TEMPFILE% ( + rem check to see whether its any different, so we dont touch unchanged files + fc /b %TEMPFILE% %SVNREV% > nul + if %ERRORLEVEL% neq 0 ( + echo Updated svnrev file + @copy /y %TEMPFILE% %SVNREV% + ) else ( + echo Not touching unchanged svnrev file + ) +) else ( + echo Ran into a weird error writing subwcrev output to tempfile: %TEMPFILE% +) + +del %TEMPFILE% + +rem always let build proceed +SET ERRORLEVEL=0 \ No newline at end of file