Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Add :glob to git source uniqueness #7419

Merged
1 commit merged into from Nov 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 4 additions & 3 deletions lib/bundler/source/git.rb
Expand Up @@ -8,7 +8,7 @@ class Source
class Git < Path
autoload :GitProxy, File.expand_path("git/git_proxy", __dir__)

attr_reader :uri, :ref, :branch, :options, :submodules
attr_reader :uri, :ref, :branch, :options, :glob, :submodules

def initialize(options)
@options = options
Expand Down Expand Up @@ -48,13 +48,14 @@ def to_lock
end

def hash
[self.class, uri, ref, branch, name, version, submodules].hash
[self.class, uri, ref, branch, name, version, glob, submodules].hash
end

def eql?(other)
other.is_a?(Git) && uri == other.uri && ref == other.ref &&
branch == other.branch && name == other.name &&
version == other.version && submodules == other.submodules
version == other.version && glob == other.glob &&
submodules == other.submodules
end

alias_method :==, :eql?
Expand Down
20 changes: 20 additions & 0 deletions spec/install/git_spec.rb
Expand Up @@ -61,5 +61,25 @@

expect(out).to include("Bundle complete!")
end

it "allows multiple gems from the same git source" do
build_repo2 do
build_lib "foo", "1.0", :path => lib_path("gems/foo")
build_lib "zebra", "2.0", :path => lib_path("gems/zebra")
build_git "gems", :path => lib_path("gems"), :gemspec => false
end

install_gemfile <<-G
source "#{file_uri_for(gem_repo2)}"
gem "foo", :git => "#{lib_path("gems")}", :glob => "foo/*.gemspec"
gem "zebra", :git => "#{lib_path("gems")}", :glob => "zebra/*.gemspec"
G

bundle "info foo"
expect(out).to include("* foo (1.0 #{revision_for(lib_path("gems"))[0..6]})")

bundle "info zebra"
expect(out).to include("* zebra (2.0 #{revision_for(lib_path("gems"))[0..6]})")
end
end
end