summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/version.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/version.sh b/tools/version.sh
index 25e781c..2e75004 100755
--- a/tools/version.sh
+++ b/tools/version.sh
@@ -61,6 +61,30 @@ gitversion() {
fi
}
+# Work out the latest svn id and also the latest bzr revno
+bzrversion() {
+
+ # look for a svn revno in the current head
+ svnver=`LANG=C bzr log -l1 $1 | grep '^ *svn revno: ' | cut -d : -f2 | cut -d ' ' -f 2`
+
+ if [ -n "$svnver" ]; then
+ # current head is a svn version so we don't care about bzr
+ version="r$svnver"
+ else
+ # look for a svn revno anywhere in history including in merges
+ svnver=`LANG=C bzr log -n0 $1 | grep '^ *svn revno: ' | head -n 1 | cut -d : -f2 | cut -d ' ' -f 2`
+ if [ -n "$svnver" ]; then
+ version="r$svnver+bzr`bzr revno $1`"
+ else
+ version="bzr`bzr revno $1`"
+ fi
+ fi
+ if ! bzr diff $1 >/dev/null; then
+ mod="M"
+ fi
+ echo "${version}${mod}"
+}
+
#
# First locate the top of the src tree (passed in usually)
#
@@ -73,6 +97,8 @@ else
# Ok, we need to derive it from the Version Control system
if [ -d "$TOP/.git" ]; then
VER=`gitversion $TOP`
+ elif [ -d "$TOP/.bzr" ]; then
+ VER=`bzrversion $TOP`
else
VER=`svnversion_safe $TOP`;
if [ "$VER" = "unknown" ]; then