REVERT SubversionDownloadStrategy change.
Change 45ce0c963a52293063432674d5c360ebe65254e2 was done in error. This submit reverts that change (which will go in a future commit.) I apologize for the inconvenience.
This commit is contained in:
		
							parent
							
								
									a9b19f0255
								
							
						
					
					
						commit
						3555a3c18f
					
				@ -119,47 +119,21 @@ end
 | 
			
		||||
 | 
			
		||||
class SubversionDownloadStrategy <AbstractDownloadStrategy
 | 
			
		||||
  def fetch
 | 
			
		||||
    # Looks like `svn up` is pretty cool, as it will save on bandwidth (makes 
 | 
			
		||||
    # cache actually a cache) and will have a similar effect to verifying the 
 | 
			
		||||
    # cache as it will make any changes to get the right revision.
 | 
			
		||||
    ohai "Checking out #{@url}"
 | 
			
		||||
    if @spec == :revision
 | 
			
		||||
      svncommand = @export.exist? ? 'up' : 'checkout';
 | 
			
		||||
      args = [svn, svncommand, '--force', @url, @export]
 | 
			
		||||
      args << '-r' << @ref if @ref
 | 
			
		||||
      quiet_safe_system *args
 | 
			
		||||
    elsif @spec == :revisions
 | 
			
		||||
      externals = Hash.new
 | 
			
		||||
      # Oh god escaping shell args.
 | 
			
		||||
      # See http://notetoself.vrensk.com/2008/08/escaping-single-quotes-in-ruby-harder-than-expected/
 | 
			
		||||
      `'#{svn.gsub(/\\|'/) { |c| "\\#{c}" }}' propget svn:externals \
 | 
			
		||||
      '#{@url.gsub(/\\|'/) { |c| "\\#{c}" }}'`.each_line do |external_line|
 | 
			
		||||
        key, value = external_line.split /\s+/
 | 
			
		||||
        externals[key] = value
 | 
			
		||||
      end
 | 
			
		||||
      fetch_repo = lambda do |external, uri|
 | 
			
		||||
        if external.to_s == @name
 | 
			
		||||
          path = ''
 | 
			
		||||
    @co=HOMEBREW_CACHE+@unique_token
 | 
			
		||||
    unless @co.exist?
 | 
			
		||||
      quiet_safe_system svn, 'checkout', @url, @co
 | 
			
		||||
    else
 | 
			
		||||
          path = external.to_s
 | 
			
		||||
        end
 | 
			
		||||
        svncommand = (@export+path).exist? ? 'up' : 'checkout';
 | 
			
		||||
        args = [svn, svncommand, '--force', '--ignore-externals', uri, @export+path]
 | 
			
		||||
        args << '-r' << @ref[external] if @ref[external]
 | 
			
		||||
        quiet_safe_system *args
 | 
			
		||||
      end
 | 
			
		||||
      fetch_repo.call @name, @url
 | 
			
		||||
      externals.each_pair &fetch_repo
 | 
			
		||||
    else
 | 
			
		||||
      svncommand = @export.exist? ? 'up' : 'checkout';
 | 
			
		||||
      args = [svn, svncommand, '--force', @url, @export]
 | 
			
		||||
      quiet_safe_system *args
 | 
			
		||||
      puts "Updating #{@co}"
 | 
			
		||||
      quiet_safe_system svn, 'up', @co
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def stage
 | 
			
		||||
    # `svn export PATH1 PATH2` doesn't need network when no revision is given.
 | 
			
		||||
    quiet_safe_system svn, 'export', '--force', @export, Dir.pwd
 | 
			
		||||
    # Force the export, since the target directory will already exist
 | 
			
		||||
    args = [svn, 'export', '--force', @co, Dir.pwd]
 | 
			
		||||
    args << '-r' << @ref if @spec == :revision and @ref
 | 
			
		||||
    quiet_safe_system *args
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Override this method in a DownloadStrategy to force the use of a non-
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user