aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/update.rb12
-rw-r--r--Library/Homebrew/test/test_updater.rb1
2 files changed, 10 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb
index 200f03979..83350988b 100644
--- a/Library/Homebrew/cmd/update.rb
+++ b/Library/Homebrew/cmd/update.rb
@@ -194,6 +194,8 @@ class Updater
reset_on_interrupt { safe_system "git", *args }
+ @current_revision = read_current_revision
+
if @initial_branch != "master" && !@initial_branch.empty?
safe_system "git", "checkout", @initial_branch, *quiet
end
@@ -206,8 +208,6 @@ class Updater
end
@stashed = false
end
-
- @current_revision = read_current_revision
end
def reset_on_interrupt
@@ -224,6 +224,8 @@ class Updater
map = Hash.new { |h, k| h[k] = [] }
if initial_revision && initial_revision != current_revision
+ wc_revision = read_current_revision
+
diff.each_line do |line|
status, *paths = line.split
src = paths.first
@@ -239,7 +241,11 @@ class Updater
file = repository.join(src)
begin
formula = Formulary.factory(file)
- new_version = formula.pkg_version
+ new_version = if wc_revision == current_revision
+ formula.pkg_version
+ else
+ FormulaVersions.new(formula).formula_at_revision(@current_revision, &:pkg_version)
+ end
old_version = FormulaVersions.new(formula).formula_at_revision(@initial_revision, &:pkg_version)
next if new_version == old_version
rescue FormulaUnavailableError, *FormulaVersions::IGNORED_EXCEPTIONS => e
diff --git a/Library/Homebrew/test/test_updater.rb b/Library/Homebrew/test/test_updater.rb
index 9c3c02979..87e175ea3 100644
--- a/Library/Homebrew/test/test_updater.rb
+++ b/Library/Homebrew/test/test_updater.rb
@@ -64,6 +64,7 @@ class UpdaterTests < Homebrew::TestCase
@updater.in_repo_expect("git pull --quiet origin refs/heads/master:refs/remotes/origin/master")
@updater.in_repo_expect("git rev-parse -q --verify HEAD", "3456cdef")
@updater.pull!(:silent => true)
+ @updater.in_repo_expect("git rev-parse -q --verify HEAD", "3456cdef")
@report.update(@updater.report)
assert_equal @updater.expected, @updater.called
end