diff options
| author | Jack Nagel | 2014-07-26 20:11:53 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-07-26 20:11:53 -0500 |
| commit | 802775078c2d91f231eb4b0f64685c01d998dee8 (patch) | |
| tree | c298de9aee39958b31cca962e76aec7c739072b5 /Library/Homebrew | |
| parent | 6baf357f8c196dcf26cc3f4a877bd992dbb55e3a (diff) | |
| download | brew-802775078c2d91f231eb4b0f64685c01d998dee8.tar.bz2 | |
Separate reading and parsing the diff
Diffstat (limited to 'Library/Homebrew')
| -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 |
