findversion.sh
changeset 10092 63288485ca37
parent 10088 a87f25ff2b42
child 10096 d4ce0c2732bc
--- a/findversion.sh	Mon Sep 08 06:27:08 2008 +0000
+++ b/findversion.sh	Mon Sep 08 10:08:55 2008 +0000
@@ -6,7 +6,7 @@
 Usage: ./findversion.sh
 Finds the current revision and if the code is modified.
 
-Output: <REV>\t<REV_NR>\t<MODIFIED>
+Output: <REV>\t<REV_NR>\t<MODIFIED>\t<CLEAN_REV>
 REV
     a string describing what version of the code the current checkout is
     based on. The exact format of this string depends on the version
@@ -40,6 +40,9 @@
     A value of 1 means that the modified status is unknown, because this
     is not an svn/git/hg checkout for example.
 
+CLEAN_REV
+    the same as REV but without branch name
+
 By setting the AWK environment variable, a caller can determine which
 version of "awk" is used. If nothing is set, this script defaults to
 "awk".
@@ -67,8 +70,13 @@
 	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 } }'`
+	TAGS=`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 }'`
-	REV="r$REV_NR"
+	if [ -n "$TAGS" ]; then
+		REV=$TAGS
+	else
+		REV="r$REV_NR"
+	fi
 elif [ -d "$ROOT_DIR/.git" ]; then
 	# We are a git checkout
 	if git diff-index HEAD "$SRC_DIR" | read dummy; then
@@ -99,8 +107,10 @@
 	REV="${REV}M"
 fi
 
+CLEAN_REV=${REV}
+
 if [ -n "$BRANCH" ]; then
 	REV="${REV}-$BRANCH"
 fi
 
-echo "$REV	$REV_NR	$MODIFIED"
+echo "$REV	$REV_NR	$MODIFIED	$CLEAN_REV"