Merge pull request #7160 from MikeMcQuaid/check_core_git_status

diagnostic: check homebrew-core git status.
This commit is contained in:
Mike McQuaid 2020-03-11 19:28:32 +00:00 committed by GitHub
commit f5ba503aaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -643,26 +643,31 @@ module Homebrew
def check_git_status def check_git_status
return unless Utils.git_available? return unless Utils.git_available?
modified = [] message = nil
HOMEBREW_REPOSITORY.cd do
status = `git status --untracked-files=all --porcelain -- Library/Homebrew/ 2>/dev/null`
return if status.blank?
modified = status.split("\n") {
"Homebrew/brew" => HOMEBREW_REPOSITORY,
"Homebrew/homebrew-core" => CoreTap.instance.path,
}.each do |name, path|
status = path.cd do
`git status --untracked-files=all --porcelain 2>/dev/null`
end end
next if status.blank?
message = <<~EOS message ||= ""
You have uncommitted modifications to Homebrew. message += "\n" unless message.empty?
message += <<~EOS
You have uncommitted modifications to #{name}.
If this is a surprise to you, then you should stash these modifications. If this is a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason. should you later need to do so for some reason.
cd #{HOMEBREW_LIBRARY} && git stash && git clean -d -f cd #{path} && git stash && git clean -d -f
EOS EOS
if ENV["CI"] modified = status.split("\n")
message += inject_file_list modified, <<~EOS message += inject_file_list modified, <<~EOS
Modified files: Uncommitted files:
EOS EOS
end end