Merge pull request #11824 from cnnrmnn/latest-head-kegs

This commit is contained in:
Connor Mann 2021-08-08 10:01:27 -04:00 committed by GitHub
commit 5ea678bbc7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 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)
stable_kegs = kegs.reject { |k| k.version.head? }
return kegs.max_by { |keg| Tab.for_keg(keg).source_modified_time } if stable_kegs.blank?
stable_kegs.max_by(&:version)
end
def resolve_default_keg(name)

View File

@ -223,12 +223,16 @@ 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
head2 = HOMEBREW_CELLAR/"baz/HEAD-2"
head2.mkpath
(head2/"INSTALL_RECEIPT.json").write (TEST_FIXTURE_DIR/"receipt.json").read
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-2"]
end
it "when there are no matching kegs returns an empty array" do

View File

@ -15,6 +15,7 @@
"bin/foo"
],
"time": 1403827774,
"source_modified_time": 1628303333,
"HEAD": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
"alias_path": "/usr/local/Library/Taps/homebrew/homebrew-core/Aliases/test-formula",
"stdlib": "libcxx",