diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb index 86cfc8188f..a5d36ab087 100644 --- a/Library/Homebrew/dev-cmd/bottle.rb +++ b/Library/Homebrew/dev-cmd/bottle.rb @@ -333,9 +333,21 @@ module Homebrew f.bottle_specification.rebuild else ohai "Determining #{f.full_name} bottle rebuild..." - versions = FormulaVersions.new(f) - rebuilds = versions.most_recent_rebuild_for_pkg_version("origin/master", f.pkg_version) - rebuilds ? rebuilds.to_i + 1 : 0 + FormulaVersions.new(f).formula_at_revision("origin/HEAD") do |prev_f| + if f.pkg_version == prev_f.pkg_version + prev_f.bottle_specification.rebuild + 1 + else + if f.pkg_version < prev_f.pkg_version + opoo <<~EOS + Current package version for #{f.full_name} (`#{f.pkg_version}') is lower than version at + origin/HEAD (`#{prev_f.pkg_version}'). + + Defaulting to no rebuild number, but you may wish to verify this. + EOS + end + 0 + end + end end filename = Bottle::Filename.create(f, bottle_tag.to_sym, rebuild) diff --git a/Library/Homebrew/formula_versions.rb b/Library/Homebrew/formula_versions.rb index d98830b342..f77a0da1ca 100644 --- a/Library/Homebrew/formula_versions.rb +++ b/Library/Homebrew/formula_versions.rb @@ -57,22 +57,4 @@ class FormulaVersions ensure Homebrew.raise_deprecation_exceptions = false end - - def most_recent_rebuild_for_pkg_version(branch, pkg_version) - rev_list(branch) do |rev| - formula_at_revision(rev) do |f| - odebug "Considering #{rev}. #{f.pkg_version} (rebuild: #{f.bottle_specification.rebuild}" - bottle = f.bottle_specification - # If the version is older than the one we want, we've gone too far - return if f.pkg_version < pkg_version - - # If this revision has a rebuild number, we are done! - return bottle.rebuild if f.pkg_version == pkg_version && !bottle.checksums.empty? - end - rescue MacOSVersionError => e - odebug "#{e} in #{name} at revision #{rev}" - break - end - nil - end end