Git: unshallow shallow clones if necessary
Fixes Homebrew/homebrew#41225.
This commit is contained in:
		
							parent
							
								
									986a62ebe9
								
							
						
					
					
						commit
						f31e411f38
					
				@ -582,6 +582,10 @@ class GitDownloadStrategy < VCSDownloadStrategy
 | 
			
		||||
    @shallow && support_depth?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def is_shallow_clone?
 | 
			
		||||
    git_dir.join("shallow").exist?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def support_depth?
 | 
			
		||||
    @ref_type != :revision && SHALLOW_CLONE_WHITELIST.any? { |rx| rx === @url }
 | 
			
		||||
  end
 | 
			
		||||
@ -632,7 +636,11 @@ class GitDownloadStrategy < VCSDownloadStrategy
 | 
			
		||||
 | 
			
		||||
  def update_repo
 | 
			
		||||
    if @ref_type == :branch || !has_ref?
 | 
			
		||||
      quiet_safe_system 'git', 'fetch', 'origin'
 | 
			
		||||
      if !shallow_clone? && is_shallow_clone?
 | 
			
		||||
        quiet_safe_system 'git', 'fetch', 'origin', '--unshallow'
 | 
			
		||||
      else
 | 
			
		||||
        quiet_safe_system 'git', 'fetch', 'origin'
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user