Merge pull request #14141 from apainintheneck/speed-up-deleted-reason
Speed up `deleted_reason` method
This commit is contained in:
commit
984d9d712d
@ -154,6 +154,20 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Optimization for the core tap which has many monthly commits
|
||||||
|
if tap.core_tap?
|
||||||
|
# Check if the formula has been deleted in the last month.
|
||||||
|
diff_command = ["git", "diff", "--diff-filter=D", "--name-only",
|
||||||
|
"@{'1 month ago'}", "--", relative_path]
|
||||||
|
deleted_formula = Utils.popen_read(*diff_command)
|
||||||
|
|
||||||
|
if deleted_formula.blank?
|
||||||
|
ofail "No previously deleted formula found." unless silent
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Find commit where formula was deleted in the last month.
|
||||||
log_command = "git log --since='1 month ago' --diff-filter=D " \
|
log_command = "git log --since='1 month ago' --diff-filter=D " \
|
||||||
"--name-only --max-count=1 " \
|
"--name-only --max-count=1 " \
|
||||||
"--format=%H\\\\n%h\\\\n%B -- #{relative_path}"
|
"--format=%H\\\\n%h\\\\n%B -- #{relative_path}"
|
||||||
|
|||||||
@ -75,16 +75,28 @@ describe Homebrew::MissingFormula do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with a deleted formula" do
|
shared_examples "it detects deleted formulae" do
|
||||||
let(:formula) { "homebrew/foo/deleted-formula" }
|
context "with a deleted formula" do
|
||||||
|
let(:formula) { "homebrew/foo/deleted-formula" }
|
||||||
|
|
||||||
it { is_expected.not_to be_nil }
|
it { is_expected.not_to be_nil }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with a formula that never existed" do
|
||||||
|
let(:formula) { "homebrew/foo/missing-formula" }
|
||||||
|
|
||||||
|
it { is_expected.to be_nil }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with a formula that never existed" do
|
include_examples "it detects deleted formulae"
|
||||||
let(:formula) { "homebrew/foo/missing-formula" }
|
|
||||||
|
|
||||||
it { is_expected.to be_nil }
|
describe "on the core tap" do
|
||||||
|
before do
|
||||||
|
allow_any_instance_of(Tap).to receive(:core_tap?).and_return(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
include_examples "it detects deleted formulae"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user