diff options
| author | Jack Nagel | 2014-07-26 20:11:53 -0500 | 
|---|---|---|
| committer | Jack Nagel | 2014-07-26 20:11:53 -0500 | 
| commit | 8a0fd581463d8261e51f8b9175dbb537d3ad2dc4 (patch) | |
| tree | c8f3d41a7b92963a0de108bc9280b3154239d80f /Library | |
| parent | 6d628e03e448a469a257d581cb31cae8bf00c31d (diff) | |
| download | homebrew-8a0fd581463d8261e51f8b9175dbb537d3ad2dc4.tar.bz2 | |
Separate reading and parsing the diff
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_updater.rb | 4 | 
2 files changed, 8 insertions, 2 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 5addb4375..85cc3014b 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -172,7 +172,7 @@ class Updater      map = Hash.new{ |h,k| h[k] = [] }      if initial_revision && initial_revision != current_revision -      `git diff-tree -r --name-status --diff-filter=AMD #{initial_revision} #{current_revision}`.each_line do |line| +      diff.each_line do |line|          status, path = line.split          map[status.to_sym] << repository.join(path)        end @@ -187,6 +187,10 @@ class Updater      `git rev-parse -q --verify HEAD`.chomp    end +  def diff +    `git diff-tree -r --name-status --diff-filter=AMD #{initial_revision} #{current_revision}` +  end +    def `(cmd)      out = super      if $? && !$?.success? diff --git a/Library/Homebrew/test/test_updater.rb b/Library/Homebrew/test/test_updater.rb index 28ce48ad0..0806b3d7c 100644 --- a/Library/Homebrew/test/test_updater.rb +++ b/Library/Homebrew/test/test_updater.rb @@ -4,6 +4,8 @@ require 'yaml'  class UpdaterTests < Homebrew::TestCase    class UpdaterMock < ::Updater +    attr_accessor :diff +      def initialize(*)        super        @outputs = Hash.new { |h, k| h[k] = [] } @@ -51,12 +53,12 @@ class UpdaterTests < Homebrew::TestCase    def perform_update(diff_output="")      HOMEBREW_REPOSITORY.cd do +      @updater.diff = diff_output        @updater.in_repo_expect("git checkout -q master")        @updater.in_repo_expect("git rev-parse -q --verify HEAD", "1234abcd")        @updater.in_repo_expect("git config core.autocrlf false")        @updater.in_repo_expect("git pull -q origin refs/heads/master:refs/remotes/origin/master")        @updater.in_repo_expect("git rev-parse -q --verify HEAD", "3456cdef") -      @updater.in_repo_expect("git diff-tree -r --name-status --diff-filter=AMD 1234abcd 3456cdef", diff_output)        @updater.pull!        @report.update(@updater.report)      end  | 
