aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-07-26 20:11:53 -0500
committerJack Nagel2014-07-26 20:11:53 -0500
commit8a0fd581463d8261e51f8b9175dbb537d3ad2dc4 (patch)
treec8f3d41a7b92963a0de108bc9280b3154239d80f /Library
parent6d628e03e448a469a257d581cb31cae8bf00c31d (diff)
downloadhomebrew-8a0fd581463d8261e51f8b9175dbb537d3ad2dc4.tar.bz2
Separate reading and parsing the diff
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/update.rb6
-rw-r--r--Library/Homebrew/test/test_updater.rb4
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