Skip to content
Browse files

Doctor check for origin

Added checks on doctor.rb for:

* Missing git origin
* git origin not pointing at mxcl/homebrew

Tests use `git config --get remote.origin.url`.
Also added printout of origin to --config.rb.

Fixes Homebrew/homebrew#14399.
  • Loading branch information...
1 parent 9a1b3c0 commit 589def64b5279d8bd2c198944616ef883bb01d7e @urdh committed
Showing with 48 additions and 0 deletions.
  1. +8 −0 Library/Homebrew/cmd/--config.rb
  2. +40 −0 Library/Homebrew/cmd/doctor.rb
View
8 Library/Homebrew/cmd/--config.rb
@@ -54,6 +54,13 @@ def head
if head.empty? then "(none)" else head end
end
+ def origin
+ origin = HOMEBREW_REPOSITORY.cd do
+ `git config --get remote.origin.url`.chomp
+ end
+ if origin.empty? then "(none)" else origin end
+ end
+
def describe_path path
return "N/A" if path.nil?
realpath = path.realpath
@@ -124,6 +131,7 @@ def write_build_config f
def dump_verbose_config
puts "HOMEBREW_VERSION: #{HOMEBREW_VERSION}"
+ puts "ORIGIN: #{origin}"
puts "HEAD: #{head}"
puts "HOMEBREW_PREFIX: #{HOMEBREW_PREFIX}"
puts "HOMEBREW_CELLAR: #{HOMEBREW_CELLAR}"
View
40 Library/Homebrew/cmd/doctor.rb
@@ -721,6 +721,46 @@ def check_git_newline_settings
end
end
+def check_for_git_origin
+ return unless which "git"
+
+ HOMEBREW_REPOSITORY.cd do
+ if `git config --get remote.origin.url`.chomp.empty? then <<-EOS.undent
+ Missing 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 add remote origin https://github.com/mxcl/homebrew.git
+ EOS
+ end
+ end
+end
+
+def check_the_git_origin
+ return unless which "git"
+ return if check_for_git_origin
+
+ HOMEBREW_REPOSITORY.cd do
+ origin = `git config --get remote.origin.url`.chomp
+
+ unless origin =~ /mxcl\/homebrew\.git$/ then <<-EOS.undent
+ Suspicious 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:
+ https://github.com/mxcl/homebrew.git
+
+ Developments can be pushed to a non-origin remote.
+ EOS
+ end
+ end
+end
+
def check_for_autoconf
return unless MacOS::Xcode.provides_autotools?

0 comments on commit 589def6

Please sign in to comment.
Something went wrong with that request. Please try again.