outdated: further fix tap version handling.

Closes Homebrew/homebrew#37317.

Closes Homebrew/homebrew#37480.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Mike McQuaid 2015-03-07 13:25:21 +00:00
parent 89325bbb19
commit d57d63ad62

View File

@ -18,21 +18,21 @@ module Homebrew
def outdated_brews(formulae) def outdated_brews(formulae)
formulae.map do |f| formulae.map do |f|
all_versions = [] all_versions = []
same_tap_versions = [] older_or_same_tap_versions = []
f.rack.subdirs.each do |dir| f.rack.subdirs.each do |dir|
keg = Keg.new dir keg = Keg.new dir
version = keg.version version = keg.version
all_versions << version all_versions << version
same_or_head_version = f.version == version || version.head? older_version = f.version <= version
tap = Tab.for_keg(keg).tapped_from tap = Tab.for_keg(keg).tapped_from
same_or_path_url_tap = f.tap == tap || tap == HOMEBREW_PATH_URL_TAP same_or_path_url_tap = f.tap == tap || tap == HOMEBREW_PATH_URL_TAP
if same_or_path_url_tap || same_or_head_version if same_or_path_url_tap || older_version
same_tap_versions << version older_or_same_tap_versions << version
end end
end end
if same_tap_versions.all? { |version| f.pkg_version > version } if older_or_same_tap_versions.all? { |version| f.pkg_version > version }
yield f, all_versions if block_given? yield f, all_versions if block_given?
f f
end end