From 677db79c292f8e00662656e14f9c983230aff07a Mon Sep 17 00:00:00 2001 From: Mike McQuaid <mike@mikemcquaid.com> Date: Sun, 26 Mar 2017 20:28:11 +0100 Subject: [PATCH] diagnostic: check homebrew/core git remote. Check the remote for homebrew/core as well as homebrew/brew as we've seen a few cases (e.g. #2387) where it was misconfigured. While we're here, tweak the messaging to tell people what to do and how to do so with a single command. --- Library/Homebrew/diagnostic.rb | 42 ++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index c8c4b83d24..08c026f3c5 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -794,31 +794,59 @@ module Homebrew EOS end - def check_git_origin + def check_brew_git_origin return if !Utils.git_available? || !(HOMEBREW_REPOSITORY/".git").exist? origin = HOMEBREW_REPOSITORY.git_origin if origin.nil? <<-EOS.undent - Missing git origin remote. + Missing Homebrew/brew git origin remote. Without a correctly configured origin, Homebrew won't update properly. You can solve this by adding the Homebrew remote: - cd #{HOMEBREW_REPOSITORY} - git remote add origin #{Formatter.url("https://github.com/Homebrew/brew.git")} + git -C "#{HOMEBREW_REPOSITORY}" remote add origin #{Formatter.url("https://github.com/Homebrew/brew.git")} EOS elsif origin !~ %r{Homebrew/brew(\.git)?$} <<-EOS.undent - Suspicious git origin remote found. + Suspicious Homebrew/brew git origin remote found. With a non-standard origin, Homebrew won't pull updates from the main repository. The current git origin is: #{origin} Unless you have compelling reasons, consider setting the - origin remote to point at the main repository, located at: - #{Formatter.url("https://github.com/Homebrew/brew.git")} + origin remote to point at the main repository by running: + git -C "#{HOMEBREW_REPOSITORY}" remote add origin #{Formatter.url("https://github.com/Homebrew/brew.git")} + EOS + end + end + + def check_coretap_git_origin + coretap_path = CoreTap.instance.path + return if !Utils.git_available? || !(coretap_path/".git").exist? + + origin = coretap_path.git_origin + + if origin.nil? + <<-EOS.undent + Missing #{CoreTap.instance} git origin remote. + + Without a correctly configured origin, Homebrew won't update + properly. You can solve this by adding the Homebrew remote: + git -C "#{coretap_path}" remote add origin #{Formatter.url("https://github.com/Homebrew/homebrew-core.git")} + EOS + elsif origin !~ %r{Homebrew/homebrew-core(\.git)?$} + <<-EOS.undent + Suspicious #{CoreTap.instance} git origin remote found. + + With a non-standard origin, Homebrew won't pull updates from + the main repository. The current git origin is: + #{origin} + + Unless you have compelling reasons, consider setting the + origin remote to point at the main repository by running: + git -C "#{coretap_path}" remote add origin #{Formatter.url("https://github.com/Homebrew/homebrew-core.git")} EOS end end -- GitLab