diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 0743c6e031..1c74d9a0c3 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -1226,28 +1226,27 @@ module Homebrew def check_for_outdated_homebrew return unless Utils.git_available? - HOMEBREW_REPOSITORY.cd do - if File.directory? ".git" + + timestamp = if File.directory?("#{HOMEBREW_REPOSITORY}/.git") + HOMEBREW_REPOSITORY.cd { `git log -1 --format="%ct" HEAD`.to_i } + else + HOMEBREW_LIBRARY.mtime.to_i + end + return if Time.now.to_i - timestamp <= 60 * 60 * 24 # 24 hours + + if File.directory?("#{HOMEBREW_REPOSITORY}/.git") + HOMEBREW_REPOSITORY.cd do local = `git rev-parse -q --verify refs/remotes/origin/master`.chomp remote = /^([a-f0-9]{40})/.match(`git ls-remote origin refs/heads/master 2>/dev/null`) - if remote.nil? || local == remote[0] - return - end + return if remote.nil? || local == remote[0] end + end - timestamp = if File.directory? ".git" - `git log -1 --format="%ct" HEAD`.to_i - else - HOMEBREW_LIBRARY.mtime.to_i - end - - if Time.now.to_i - timestamp > 60 * 60 * 24 then <<-EOS.undent + <<-EOS.undent Your Homebrew is outdated. You haven't updated for at least 24 hours. This is a long time in brewland! To update Homebrew, run `brew update`. - EOS - end - end + EOS end def check_for_unlinked_but_not_keg_only