aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorVlad Shablinsky2016-08-11 10:00:39 +0200
committerVlad Shablinsky2016-08-18 10:38:10 +0200
commitf085597cbdabab1138c96b7d928b4ae451a50e5d (patch)
tree2fd2d8d758045b20e4cdeca6122a10ef4611eb57 /Library
parent884a839c71ddcabf57e0bee13917695907bb9212 (diff)
downloadbrew-f085597cbdabab1138c96b7d928b4ae451a50e5d.tar.bz2
Use epochs in tabs
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula.rb4
-rw-r--r--Library/Homebrew/tab.rb8
2 files changed, 12 insertions, 0 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 02f00afdf..0acca6546 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -436,6 +436,7 @@ class Formula
def head_version_outdated?(version, options={})
tab = Tab.for_keg(prefix(version))
+ return true if tab.version_scheme < version_scheme
return true if stable && tab.stable_version && tab.stable_version < stable.version
return true if devel && tab.devel_version && tab.devel_version < devel.version
@@ -1708,6 +1709,9 @@ class Formula
# Used for creating new Homebrew versions schemes. For example, if we want
# to change version scheme from one to another, then we may need to update
# `version_scheme` of this {Formula} to be able to use new version scheme.
+ # E.g. to move from 20151020 scheme to 1.0.0 we need to increment
+ # `version_scheme`. Without this, the prior scheme will always equate to a
+ # higher version.
# `0` if unset.
#
# <pre>version_scheme 1</pre>
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb
index d5a95e05d..cf398fcbf 100644
--- a/Library/Homebrew/tab.rb
+++ b/Library/Homebrew/tab.rb
@@ -37,6 +37,7 @@ class Tab < OpenStruct
"stable" => formula.stable ? formula.stable.version.to_s : nil,
"devel" => formula.devel ? formula.devel.version.to_s : nil,
"head" => formula.head ? formula.head.version.to_s : nil,
+ "version_scheme" => formula.version_scheme,
}
}
}
@@ -78,6 +79,7 @@ class Tab < OpenStruct
"stable" => nil,
"devel" => nil,
"head" => nil,
+ "version_scheme" => 0,
}
end
@@ -142,6 +144,7 @@ class Tab < OpenStruct
"stable" => f.stable ? f.stable.version.to_s : nil,
"devel" => f.devel ? f.devel.version.to_s : nil,
"head" => f.head ? f.head.version.to_s : nil,
+ "version_scheme" => f.version_scheme,
}
}
end
@@ -168,6 +171,7 @@ class Tab < OpenStruct
"stable" => nil,
"devel" => nil,
"head" => nil,
+ "version_scheme" => 0,
}
}
}
@@ -271,6 +275,10 @@ class Tab < OpenStruct
Version.create(versions["head"]) if versions["head"]
end
+ def version_scheme
+ versions["version_scheme"] || 0
+ end
+
def source_modified_time
Time.at(super)
end