You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 36bb9f2..f2f8f49 100644
--- a/lib/bundler/definition.rb+++ b/lib/bundler/definition.rb@@ -249,7 +249,7 @@ module Bundler
else
# Run a resolve against the locally available gems
Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
- last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, ruby_version, gem_version_promoter)+ last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, resolver_base_set(last_resolve), ruby_version, gem_version_promoter)
end
end
end
@@ -633,6 +633,18 @@ module Bundler
Set.new(@dependencies) != Set.new(@locked_deps)
end
+ LockedSpec = Struct.new(:name, :version)++ def resolver_base_set(converged_locked_specs)+ base = converged_locked_specs.to_hash+ @locked_specs.each do |spec|+ if base[spec.name].empty?+ base[spec.name] << LockedSpec.new(spec.name, ">= #{spec.version}")+ end+ end+ base.values.flatten+ end+
# Remove elements from the locked specs that are expired. This will most
# commonly happen if the Gemfile has changed since the lockfile was last
# generated
@@ -707,7 +719,6 @@ module Bundler
source.unlock! if !diff.empty? && diff.any? {|s| s.source == source }
end
end
-
resolve
end
I believe this should be the gist of it, but it's untested
From: rubygems/bundler-features#73
Involves:
update
behavior in 2.0The text was updated successfully, but these errors were encountered: