Honor GIT env var
This commit is contained in:
		
							parent
							
								
									5e0cbdab9b
								
							
						
					
					
						commit
						b104623f43
					
				| @ -369,6 +369,15 @@ can take several different forms: | ||||
| 
 | ||||
| ## ENVIRONMENT | ||||
| 
 | ||||
|   * GIT: | ||||
|     When using Git, Homebrew will use `GIT` if set, | ||||
|     a Homebrew-built Git if installed, or the system-provided binary. | ||||
| 
 | ||||
|     Set this to force Homebrew to use a particular git binary. | ||||
| 
 | ||||
|   * EDITOR: | ||||
|     If set, and `HOMEBREW_EDITOR` is not, use `EDITOR` as the text editor. | ||||
| 
 | ||||
|   * HOMEBREW\_BUILD\_FROM\_SOURCE: | ||||
|     If set, instructs Homebrew to compile from source even when a formula | ||||
|     provides a bottle. | ||||
|  | ||||
| @ -315,6 +315,7 @@ end | ||||
| class GitDownloadStrategy < AbstractDownloadStrategy | ||||
|   def initialize name, package | ||||
|     super | ||||
|     @@git ||= find_git | ||||
|     @unique_token="#{name}--git" unless name.to_s.empty? or name == '__UNKNOWN__' | ||||
|     @clone=HOMEBREW_CACHE+@unique_token | ||||
|   end | ||||
| @ -339,7 +340,7 @@ class GitDownloadStrategy < AbstractDownloadStrategy | ||||
|     if @clone.exist? | ||||
|       Dir.chdir(@clone) do | ||||
|         # Check for interupted clone from a previous install | ||||
|         unless system 'git', 'status', '-s' | ||||
|         unless system @@git, 'status', '-s' | ||||
|           puts "Removing invalid .git repo from cache" | ||||
|           FileUtils.rm_rf @clone | ||||
|         end | ||||
| @ -348,7 +349,7 @@ class GitDownloadStrategy < AbstractDownloadStrategy | ||||
| 
 | ||||
|     unless @clone.exist? | ||||
|       # Note: first-time checkouts are always done verbosely | ||||
|       clone_args = %w[git clone] | ||||
|       clone_args = [@@git, 'clone'] | ||||
|       clone_args << '--depth' << '1' if support_depth? | ||||
| 
 | ||||
|       case @spec | ||||
| @ -361,15 +362,15 @@ class GitDownloadStrategy < AbstractDownloadStrategy | ||||
|     else | ||||
|       puts "Updating #{@clone}" | ||||
|       Dir.chdir(@clone) do | ||||
|         safe_system 'git', 'config', 'remote.origin.url', @url | ||||
|         safe_system @@git, 'config', 'remote.origin.url', @url | ||||
| 
 | ||||
|         safe_system 'git', 'config', 'remote.origin.fetch', case @spec | ||||
|         safe_system @@git, 'config', 'remote.origin.fetch', case @spec | ||||
|           when :branch then "+refs/heads/#{@ref}:refs/remotes/origin/#{@ref}" | ||||
|           when :tag then "+refs/tags/#{@ref}:refs/tags/#{@ref}" | ||||
|           else '+refs/heads/master:refs/remotes/origin/master' | ||||
|           end | ||||
| 
 | ||||
|         git_args = %w[git fetch origin] | ||||
|         git_args = [@@git, 'fetch', 'origin'] | ||||
|         quiet_safe_system(*git_args) | ||||
|       end | ||||
|     end | ||||
| @ -382,27 +383,34 @@ class GitDownloadStrategy < AbstractDownloadStrategy | ||||
|         ohai "Checking out #{@spec} #{@ref}" | ||||
|         case @spec | ||||
|         when :branch | ||||
|           nostdout { quiet_safe_system 'git', 'checkout', "origin/#{@ref}", '--' } | ||||
|           nostdout { quiet_safe_system @@git, 'checkout', "origin/#{@ref}", '--' } | ||||
|         when :tag, :revision | ||||
|           nostdout { quiet_safe_system 'git', 'checkout', @ref, '--' } | ||||
|           nostdout { quiet_safe_system @@git, 'checkout', @ref, '--' } | ||||
|         end | ||||
|       else | ||||
|         # otherwise the checkout-index won't checkout HEAD | ||||
|         # https://github.com/mxcl/homebrew/issues/7124 | ||||
|         # must specify origin/HEAD, otherwise it resets to the current local HEAD | ||||
|         quiet_safe_system "git", "reset", "--hard", "origin/HEAD" | ||||
|         quiet_safe_system @@git, "reset", "--hard", "origin/HEAD" | ||||
|       end | ||||
|       # http://stackoverflow.com/questions/160608/how-to-do-a-git-export-like-svn-export | ||||
|       safe_system 'git', 'checkout-index', '-a', '-f', "--prefix=#{dst}/" | ||||
|       safe_system @@git, 'checkout-index', '-a', '-f', "--prefix=#{dst}/" | ||||
|       # check for submodules | ||||
|       if File.exist?('.gitmodules') | ||||
|         safe_system 'git', 'submodule', 'init' | ||||
|         safe_system 'git', 'submodule', 'update' | ||||
|         sub_cmd = "git checkout-index -a -f \"--prefix=#{dst}/$path/\"" | ||||
|         safe_system 'git', 'submodule', '--quiet', 'foreach', '--recursive', sub_cmd | ||||
|         safe_system @@git, 'submodule', 'init' | ||||
|         safe_system @@git, 'submodule', 'update' | ||||
|         sub_cmd = "#{@@git} checkout-index -a -f \"--prefix=#{dst}/$path/\"" | ||||
|         safe_system @@git, 'submodule', '--quiet', 'foreach', '--recursive', sub_cmd | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # Try GIT, a Homebrew-built Git, and finally the OS X system Git. | ||||
|   def find_git | ||||
|     return ENV['GIT'] if ENV['GIT'] | ||||
|     return "#{HOMEBREW_PREFIX}/bin/git" if File.exist? "#{HOMEBREW_PREFIX}/bin/git" | ||||
|     return MacOS.locate 'git' | ||||
|   end | ||||
| end | ||||
| 
 | ||||
| class CVSDownloadStrategy < AbstractDownloadStrategy | ||||
|  | ||||
| @ -409,6 +409,17 @@ Homebrew can install formulae via URL, e\.g\. \fBhttps://raw\.github\.com/mxcl/h | ||||
| .SH "ENVIRONMENT" | ||||
| . | ||||
| .TP | ||||
| GIT | ||||
| When using Git, Homebrew will use \fBGIT\fR if set, a Homebrew\-built Git if installed, or the system\-provided binary\. | ||||
| . | ||||
| .IP | ||||
| Set this to force Homebrew to use a particular git binary\. | ||||
| . | ||||
| .TP | ||||
| EDITOR | ||||
| If set, and \fBHOMEBREW_EDITOR\fR is not, use \fBEDITOR\fR as the text editor\. | ||||
| . | ||||
| .TP | ||||
| HOMEBREW_BUILD_FROM_SOURCE | ||||
| If set, instructs Homebrew to compile from source even when a formula provides a bottle\. | ||||
| . | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Adam Vandenberg
						Adam Vandenberg