summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-12-09 20:45:52 -0800
committerPaul Phillips <paulp@improving.org>2011-12-09 21:21:56 -0800
commit7d2db571b41f3c23e91ad27ee5b81a421f312e00 (patch)
tree1ba3a2a52f5afa32233c35394b54ade7feae179a
parentdf13e31bbb5f0dedc9739687bae553512a4a2517 (diff)
downloadscala-7d2db571b41f3c23e91ad27ee5b81a421f312e00.tar.gz
scala-7d2db571b41f3c23e91ad27ee5b81a421f312e00.tar.bz2
scala-7d2db571b41f3c23e91ad27ee5b81a421f312e00.zip
Hardening get-scala-version.
Reimplementing without git-describe to harden against old gits and make any kind of reference tag unnecessary. Conflicts: tools/get-scala-revision
-rwxr-xr-xtools/get-scala-revision22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/get-scala-revision b/tools/get-scala-revision
new file mode 100755
index 0000000000..dc0ee561dd
--- /dev/null
+++ b/tools/get-scala-revision
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+#
+# Usage: get-scala-revision [dir]
+# Figures out current scala revision of a git clone.
+#
+# If no dir is given, current working dir is used.
+
+# not like releases come out so often that we are duty-bound
+# to recalculate this every time.
+# git merge-base v2.9.1 master
+devbase="d6f3184fc8"
+
+# reimplementing git describe hopefully in a way which works
+# without any particular tags, branches, or recent versions of git.
+# this is supposed to generate
+# dev-NNNN-g<sha>
+# where NNNN is the number of commits since devbase, which
+# is the merge-base of the most recent release and master.
+# Presently hardcoded to reduce uncertainty, v2.9.1/master.
+commits=$(GIT_PAGER=cat git log --oneline $devbase..HEAD | wc -l)
+sha=$(git log -1 --abbrev-commit --abbrev=7 --format="%h")
+printf "dev-%s-g%s\n" $commits $sha