]> git.donarmstrong.com Git - cran2deb.git/commitdiff
version: increment revision when a new build is attempted and the previous build...
authorblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:23:35 +0000 (13:23 +0000)
committerblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:23:35 +0000 (13:23 +0000)
every successful build will have its own revision; code to be introduced
ensures that builds only occur when 'things change', hence revisions
correspond to successful builds of things significantly changing, except
the greatest revision, which may be a failed build.

git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@100 edb9625f-4e0d-4859-8d74-9fd3b1da38cb

pkg/trunk/R/version.R

index 2d4e550e50e7aabdcc3e8d9970e0f6913e423dd5..5be77a3e5388ec85205f8d4b3d1f65aa52180ca5 100644 (file)
@@ -51,13 +51,17 @@ version_upstream <- function(pkgver) {
 }
 # version_upstream . version_new = id
 
-version_update <- function(rver, prev_pkgver) {
+version_update <- function(rver, prev_pkgver, prev_success) {
     # return the next debian package version
     prev_rver <- version_upstream(prev_pkgver)
     if (prev_rver == rver) {
-        # increment the Debian revision
+        # increment the Debian revision if the previous build was successful
+        inc = 0
+        if (prev_success) {
+            inc = 1
+        }
         return(version_new(rver
-                          ,debian_revision = version_revision(prev_pkgver)+1
+                          ,debian_revision = version_revision(prev_pkgver)+inc
                           ,debian_epoch    = version_epoch(prev_pkgver)
                           ))
     }
@@ -78,9 +82,10 @@ new_build_version <- function(pkgname) {
         name <- bundle
     }
     db_ver <- db_latest_build_version(pkgname)
+    db_succ <- db_latest_build_status(pkgname)[[1]]
     latest_r_ver <- available[pkgname,'Version']
-    if (!is.na(db_ver)) {
-        return(version_update(latest_r_ver, db_ver))
+    if (!is.null(db_ver)) {
+        return(version_update(latest_r_ver, db_ver, db_succ))
     }
     return(version_new(latest_r_ver))
 }