Changeset - r15250:61ec821d955c
[Not reviewed]
master
0 2 0
michi_cc - 14 years ago 2010-05-26 03:31:05
michi_cc@openttd.org
(svn r19895) -Fix [FS#3836]: Git version detection would sometimes mistakenly identify a checkout as modified.
2 files changed with 10 insertions and 0 deletions:
0 comments (0 inline, 0 general)
findversion.sh
Show inline comments
 
@@ -78,24 +78,26 @@ if [ -d "$ROOT_DIR/.svn" ]; then
 
	fi
 
	# Find the revision like: rXXXXM-branch
 
	BRANCH=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^URL:.*branches/ { split($2, a, "/"); for(i in a) if (a[i]=="branches") { print a[i+1]; break } }'`
 
	TAG=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^URL:.*tags/ { split($2, a, "/"); for(i in a) if (a[i]=="tags") { print a[i+1]; break } }'`
 
	REV_NR=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^Last Changed Rev:/ { print $4 }'`
 
	if [ -n "$TAG" ]; then
 
		REV=$TAG
 
	else
 
		REV="r$REV_NR"
 
	fi
 
elif [ -d "$ROOT_DIR/.git" ]; then
 
	# We are a git checkout
 
	# Refresh the index to make sure file stat info is in sync, then look for modifications
 
	git update-index --refresh >/dev/null
 
	if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
 
		MODIFIED="2"
 
	fi
 
	HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
 
	REV="g`echo $HASH | cut -c1-8`"
 
	BRANCH=`git branch|grep '[*]' | sed 's@\* @@;s@^master$@@'`
 
	REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
 
elif [ -d "$ROOT_DIR/.hg" ]; then
 
	# We are a hg checkout
 
	if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
 
		MODIFIED="2"
 
	fi
projects/determineversion.vbs
Show inline comments
 
@@ -162,24 +162,32 @@ Function DetermineSVNVersion()
 
	Else ' version <> "norev000"
 
		' svn detection failed, reset error and try git
 
		Err.Clear
 
		Set oExec = WshShell.Exec("git rev-parse --verify HEAD")
 
		If Err.Number = 0 Then
 
			' Wait till the application is finished ...
 
			Do While oExec.Status = 0
 
			Loop
 

	
 
			If oExec.ExitCode = 0 Then
 
				hash = oExec.StdOut.ReadLine()
 
				version = "g" & Mid(hash, 1, 8)
 
				' Make sure index is in sync with disk
 
				Set oExec = WshShell.Exec("git update-index --refresh")
 
				If Err.Number = 0 Then
 
					' Wait till the application is finished ...
 
					Do While oExec.Status = 0
 
						WScript.Sleep 10
 
					Loop
 
				End If
 
				Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
 
				If Err.Number = 0 Then
 
					' Wait till the application is finished ...
 
					Do While oExec.Status = 0
 
					Loop
 

	
 
					If oExec.ExitCode = 1 Then
 
						modified = 2
 
					End If ' oExec.ExitCode = 1
 

	
 
					Set oExec = WshShell.Exec("git symbolic-ref HEAD")
 
					If Err.Number = 0 Then
0 comments (0 inline, 0 general)