From 4e5b9f57ca8f20e4e0c285636158c48d1ce9e330 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 11 Mar 2020 17:25:07 +0000 Subject: [PATCH] diagnostic: check homebrew-core git status. Also look in Homebrew/homebrew-core for uncommitted files (in some ways we care about uncommitted stuff there more than Homebrew/brew). Also, list all the modified files even when on non-CI to make it easier for users to figure out their own issues and check the contents of the whole repos rather than just a subdirectory. In general this is a cleanup that should have been done long ago (when we split Homebrew/brew and Homebrew/homebrew-core). --- Library/Homebrew/diagnostic.rb | 37 +++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 27176242f8..eb7b3a1bf6 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -643,26 +643,31 @@ module Homebrew def check_git_status return unless Utils.git_available? - modified = [] - HOMEBREW_REPOSITORY.cd do - status = `git status --untracked-files=all --porcelain -- Library/Homebrew/ 2>/dev/null` - return if status.blank? + message = nil + + { + "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 + next if status.blank? + + message ||= "" + 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. + Stashing returns Homebrew to a pristine state but can be undone + should you later need to do so for some reason. + cd #{path} && git stash && git clean -d -f + EOS modified = status.split("\n") - end - - message = <<~EOS - You have uncommitted modifications to Homebrew. - If this is a surprise to you, then you should stash these modifications. - Stashing returns Homebrew to a pristine state but can be undone - should you later need to do so for some reason. - cd #{HOMEBREW_LIBRARY} && git stash && git clean -d -f - EOS - - if ENV["CI"] message += inject_file_list modified, <<~EOS - Modified files: + Uncommitted files: EOS end