From f085597cbdabab1138c96b7d928b4ae451a50e5d Mon Sep 17 00:00:00 2001 From: Vlad Shablinsky Date: Thu, 11 Aug 2016 10:00:39 +0200 Subject: [PATCH] Use epochs in tabs --- Library/Homebrew/formula.rb | 4 ++++ Library/Homebrew/tab.rb | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 02f00afdf1..0acca65463 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. # #
version_scheme 1
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb index d5a95e05dd..cf398fcbfa 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