diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-04-28 10:20:33 +0200 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-05-04 06:45:16 +0900 |
commit | 9d61c4519c73d0294d2a41cc087ef3841e305c4c (patch) | |
tree | 3c3db38ab698dae5384e851753433b124bbbfae8 /lib/bundler | |
parent | 42538ad710da28a8b89b92dd0a2939fad795c87f (diff) |
[rubygems/rubygems] Also speed up the case when nothing changed
https://github.com/rubygems/rubygems/commit/fa0ac74883
Diffstat (limited to 'lib/bundler')
-rw-r--r-- | lib/bundler/definition.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 602893c62a..d862877c2e 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -261,7 +261,7 @@ module Bundler @locked_specs elsif !unlocking? && nothing_changed? Bundler.ui.debug("Found no changes, using resolution from the lockfile") - converge_locked_specs + SpecSet.new(filter_specs(@locked_specs, @dependencies.select{|dep| @locked_specs[dep].any? })) else last_resolve = converge_locked_specs # Run a resolve against the locally available gems @@ -465,6 +465,10 @@ module Bundler private + def filter_specs(specs, deps) + SpecSet.new(specs).for(expand_dependencies(deps, true), false, false) + end + def materialize(dependencies) specs = resolve.materialize(dependencies) missing_specs = specs.missing_specs @@ -727,8 +731,7 @@ module Bundler end end - resolve = SpecSet.new(converged) - SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) }) + SpecSet.new(filter_specs(converged, deps).reject{|s| @unlock[:gems].include?(s.name) }) end def metadata_dependencies |