From 4dfb32241a4af5d115f65ba8b17aa9bfcde19c57 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sun, 26 Nov 2017 23:11:03 -0800 Subject: Stop overriding specs during double-checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes my test-case reproduction of #6072. I’m pretty sure it’s because the double-check was overriding the locally installed index specs with specs fetched from the RubyGems API, causing Bundler to conclude that the gems aren’t installed, even though they are. --- lib/bundler/definition.rb | 2 +- lib/bundler/source/rubygems.rb | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 0ef920638b..264a948d41 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -294,7 +294,7 @@ module Bundler end sources.all_sources.each do |source| - source.double_check_for(unmet_dependency_names, :override_dupes) + source.double_check_for(unmet_dependency_names) end break if idxcount == idx.size diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb index 45ff3d17b3..3ba7641f84 100644 --- a/lib/bundler/source/rubygems.rb +++ b/lib/bundler/source/rubygems.rb @@ -258,10 +258,8 @@ module Bundler end end - def double_check_for(unmet_dependency_names, override_dupes = false, index = specs) + def double_check_for(unmet_dependency_names) return unless @allow_remote - raise ArgumentError, "missing index" unless index - return unless api_fetchers.any? unmet_dependency_names = unmet_dependency_names.call @@ -276,7 +274,7 @@ module Bundler Bundler.ui.debug "Double checking for #{unmet_dependency_names || "all specs (due to the size of the request)"} in #{self}" - fetch_names(api_fetchers, unmet_dependency_names, index, override_dupes) + fetch_names(api_fetchers, unmet_dependency_names, specs, false) end def dependency_names_to_double_check -- cgit v1.2.1