summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-04-28 10:20:33 +0200
committergit <svn-admin@ruby-lang.org>2022-05-04 06:45:16 +0900
commit9d61c4519c73d0294d2a41cc087ef3841e305c4c (patch)
tree3c3db38ab698dae5384e851753433b124bbbfae8
parent42538ad710da28a8b89b92dd0a2939fad795c87f (diff)
[rubygems/rubygems] Also speed up the case when nothing changed
https://github.com/rubygems/rubygems/commit/fa0ac74883
-rw-r--r--lib/bundler/definition.rb9
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