summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/bundler/definition.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index e177b6e396..bd424609c9 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -107,6 +107,7 @@ module Bundler
@locked_ruby_version = @locked_gems.ruby_version
@locked_deps = @locked_gems.dependencies
@originally_locked_specs = SpecSet.new(@locked_gems.specs)
+ @originally_locked_sources = @locked_gems.sources
@locked_checksums = @locked_gems.checksums
if @unlocking_all
@@ -114,7 +115,7 @@ module Bundler
@locked_sources = []
else
@locked_specs = @originally_locked_specs
- @locked_sources = @locked_gems.sources
+ @locked_sources = @originally_locked_sources
end
else
@locked_gems = nil
@@ -123,8 +124,9 @@ module Bundler
@platforms = []
@locked_deps = {}
@locked_specs = SpecSet.new([])
- @originally_locked_specs = @locked_specs
@locked_sources = []
+ @originally_locked_specs = @locked_specs
+ @originally_locked_sources = @locked_sources
@locked_checksums = Bundler.feature_flag.lockfile_checksums?
end
@@ -954,7 +956,7 @@ module Bundler
sources.all_sources.each do |source|
# has to be done separately, because we want to keep the locked checksum
# store for a source, even when doing a full update
- if @locked_checksums && @locked_gems && locked_source = @locked_gems.sources.find {|s| s == source && !s.equal?(source) }
+ if @locked_checksums && @locked_gems && locked_source = @originally_locked_sources.find {|s| s == source && !s.equal?(source) }
source.checksum_store.merge!(locked_source.checksum_store)
end
# If the source is unlockable and the current command allows an unlock of
@@ -1137,7 +1139,7 @@ module Bundler
end
def additional_base_requirements_to_prevent_downgrades(resolution_base)
- return resolution_base unless @locked_gems && !sources.expired_sources?(@locked_gems.sources)
+ return resolution_base unless @locked_gems && !sources.expired_sources?(@originally_locked_sources)
@originally_locked_specs.each do |locked_spec|
next if locked_spec.source.is_a?(Source::Path) || locked_spec.source_changed?