brew cleanup: don't remove higher version kegs.
* Use version compare to only remove kegs with lower version than the
  current one, not higher version which might be from someone's
  branch.
* Do the same for cache cleanup.
  - Be conservative so that if a name detected from cache file is not
    the same as its formula then don't clean it.
Closes Homebrew/homebrew#15914.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
			
			
This commit is contained in:
		
							parent
							
								
									9c294364c6
								
							
						
					
					
						commit
						2a1ec18ff9
					
				@ -33,7 +33,7 @@ module Homebrew extend self
 | 
			
		||||
 | 
			
		||||
    if f.installed? and f.rack.directory?
 | 
			
		||||
      f.rack.children.each do |keg|
 | 
			
		||||
        if f.installed_prefix != keg
 | 
			
		||||
        if f.version > Keg.new(keg).version
 | 
			
		||||
          if f.can_cleanup?
 | 
			
		||||
            if ARGV.dry_run?
 | 
			
		||||
              puts "Would remove: #{keg}"
 | 
			
		||||
@ -61,7 +61,7 @@ module Homebrew extend self
 | 
			
		||||
      if name and version
 | 
			
		||||
        f = Formula.factory(name) rescue nil
 | 
			
		||||
        old_bottle = bottle_file_outdated? f, pn
 | 
			
		||||
        if not f or (f.version != version or ARGV.switch? "s" and not f.installed?) or old_bottle
 | 
			
		||||
        if (f and f.version > version) or (ARGV.switch? "s" and (f and (not f.installed?))) or old_bottle
 | 
			
		||||
          if ARGV.dry_run?
 | 
			
		||||
            puts "Would remove: #{pn}"
 | 
			
		||||
          else
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user