@@ -66,11 +66,11 @@ object Release {
66
66
67
67
/** This generates a properties file, if it does not already exist, with the maximum lastmodified timestamp
68
68
* of any source file. */
69
- def generatePropertiesFile (name : String )(baseDirectory : File , version : String , dir : File , git : GitRunner ): Seq [File ] = {
69
+ def generatePropertiesFile (name : String )(baseDirectory : File , version : String , dir : File , git : GitRunner , s : TaskStreams ): Seq [File ] = {
70
70
// TODO - We can probably clean this up by moving caching bits elsewhere perhaps....
71
71
val target = dir / name
72
72
// TODO - Regenerate on triggers, like recompilation or something...
73
- val fullVersion = makeFullVersionString(baseDirectory, version, git)
73
+ val fullVersion = makeFullVersionString(baseDirectory, version, git, s )
74
74
def hasSameVersion : Boolean = {
75
75
val props = new java.util.Properties
76
76
val in = new java.io.FileInputStream (target)
@@ -88,26 +88,28 @@ object Release {
88
88
def makePropertiesFile (f : File , version : String ): Unit =
89
89
IO .write(f, " version.number = " + version+ " \n copyright.string = Copyright 2002-2011, LAMP/EPFL" )
90
90
91
- def makeFullVersionString (baseDirectory : File , baseVersion : String , git : GitRunner ) = baseVersion+ " ." + getGitRevision(baseDirectory, git) + " . " + currentDay
91
+ def makeFullVersionString (baseDirectory : File , baseVersion : String , git : GitRunner , s : TaskStreams ) = baseVersion+ " ." + getGitRevision(baseDirectory, git, currentDay, s)
92
92
93
93
// TODO - do we want this in the build number?
94
94
def currentDay = (new java.text.SimpleDateFormat (" yyyyMMdd'T'HHmmss" )) format (new java.util.Date )
95
95
96
- def getGitRevision (baseDirectory : File , git : GitRunner ) = {
97
- object outputStealer extends sbt.Logger {
98
- private val stdout = new StringBuilder
99
- private val stderr = new StringBuilder
100
- def log (level : Level .Value , message : ⇒ String ): Unit = stdout append message
101
- def success (message : ⇒ String ): Unit = ()
102
- def trace (t : ⇒ Throwable ): Unit = ()
103
- def stdoutString = stdout.toString
104
- }
105
- val result = try {
106
- git(" describe" , " HEAD" , " --abbrev=7" , " --match" , " dev" )(baseDirectory, outputStealer)
107
- } catch {
108
- case t => git(" describe" , " HEAD" , " --abbrev=7" , " --always" )(baseDirectory, outputStealer)
96
+
97
+
98
+ def getGitRevision (baseDirectory : File , git : GitRunner , date : String , s : TaskStreams ) = {
99
+
100
+ val mergeBase = {
101
+ // TODO - Cache this value.
102
+ // git("merge-base","v2.8.2","v2.9.1","master")(baseDirectory, s.log)
103
+ " df13e31bbb"
109
104
}
110
- result.trim
105
+ // current commit sha
106
+ val sha =
107
+ git(" rev-list" , " -n" , " 1" , " HEAD" )(baseDirectory, s.log)
108
+
109
+ val commits =
110
+ git(" --no-pager" , " log" , " --pretty=oneline" , mergeBase + " ..HEAD" )(baseDirectory, s.log) split " [\r\n ]+" size
111
+
112
+ " rdev-%d-%s-g%s" format (commits, date, sha.substring(0 ,7 ))
111
113
}
112
114
113
115
}
0 commit comments