diff options
Diffstat (limited to 'Library/Homebrew/cmd/update.rb')
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index e3e25c01e..594d2da95 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -84,10 +84,15 @@ class Updater      map = Hash.new{ |h,k| h[k] = [] }      if initial_revision && initial_revision != current_revision -      changes = `git diff-tree -r --name-status -z #{initial_revision} #{current_revision}`.split("\0") -      changes.each_slice(2) do |status, file| -        file = Pathname.pwd.join(file).relative_path_from(HOMEBREW_REPOSITORY) -        map[status.to_sym] << file.to_s +      changes = `git diff-tree -r --name-status -M85% -z #{initial_revision} #{current_revision}`.split("\0") +      changes.each_cons(3) do |status, src, dst| +        next unless status =~ /^[AMDR](\d{3})?$/ +        path = case status = status[0,1] +          when 'R' then dst +          else src +          end +        path = Pathname.pwd.join(path).relative_path_from(HOMEBREW_REPOSITORY) +        map[status.to_sym] << path.to_s        end      end  | 
