Handle only HEAD kegs in to_latest_kegs

This commit is contained in:
Connor Mann 2021-08-04 18:51:39 -04:00
parent 0fc7762e99
commit 3dde12c634
No known key found for this signature in database
GPG Key ID: 5886083015754F6F
2 changed files with 10 additions and 4 deletions

View File

@ -324,7 +324,11 @@ module Homebrew
# Return keg if it is the only installed keg
return kegs if kegs.length == 1
kegs.reject { |k| k.version.head? }.max_by(&:version)
eligible_kegs = kegs.reject { |k| k.version.head? }
# Use HEAD kegs if there are no stable kegs
eligible_kegs = kegs if eligible_kegs.blank?
eligible_kegs.max_by(&:version)
end
def resolve_default_keg(name)

View File

@ -223,12 +223,14 @@ describe Homebrew::CLI::NamedArgs do
(HOMEBREW_CELLAR/"foo/1.0").mkpath
(HOMEBREW_CELLAR/"foo/2.0").mkpath
(HOMEBREW_CELLAR/"bar/1.0").mkpath
(HOMEBREW_CELLAR/"baz/HEAD-1").mkpath
(HOMEBREW_CELLAR/"baz/HEAD-2").mkpath
end
it "resolves the latest kegs with #resolve_latest_keg" do
latest_kegs = described_class.new("foo", "bar").to_latest_kegs
expect(latest_kegs.map(&:name)).to eq ["foo", "bar"]
expect(latest_kegs.map { |k| k.version.version.to_s }).to eq ["2.0", "1.0"]
latest_kegs = described_class.new("foo", "bar", "baz").to_latest_kegs
expect(latest_kegs.map(&:name)).to eq ["foo", "bar", "baz"]
expect(latest_kegs.map { |k| k.version.version.to_s }).to eq ["2.0", "1.0", "HEAD-1"]
end
it "when there are no matching kegs returns an empty array" do