Skip to content

Commit

Permalink
[rubygems/rubygems] Better error when installing a git lockfile and g…
Browse files Browse the repository at this point in the history
  • Loading branch information
deivid-rodriguez authored and matzbot committed Oct 29, 2021
1 parent a954f27 commit f634d1e
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 3 deletions.
7 changes: 5 additions & 2 deletions lib/bundler/source/git/git_proxy.rb
Expand Up @@ -56,7 +56,6 @@ def initialize(path, uri, ref, revision = nil, git = nil)
@ref = ref
@revision = revision
@git = git
raise GitNotInstalledError.new if allow? && !Bundler.git_present?
end

def revision
Expand Down Expand Up @@ -208,7 +207,11 @@ def configured_uri_for(uri)
end

def allow?
@git ? @git.allow_git_ops? : true
allowed = @git ? @git.allow_git_ops? : true

raise GitNotInstalledError.new if allowed && !Bundler.git_present?

allowed
end

def with_path(&blk)
Expand Down
39 changes: 38 additions & 1 deletion spec/bundler/install/gemfile/git_spec.rb
Expand Up @@ -1436,7 +1436,44 @@
end

describe "without git installed" do
it "prints a better error message" do
it "prints a better error message when installing" do
build_git "foo"

gemfile <<-G
source "#{file_uri_for(gem_repo1)}"
gem "rake", git: "https://github.com/ruby/rake"
G

lockfile <<-L
GIT
remote: https://github.com/ruby/rake
revision: 5c60da8644a9e4f655e819252e3b6ca77f42b7af
specs:
rake (13.0.6)
GEM
remote: https://rubygems.org/
specs:
PLATFORMS
#{lockfile_platforms}
DEPENDENCIES
rake!
BUNDLED WITH
#{Bundler::VERSION}
L

with_path_as("") do
bundle "install", :raise_on_error => false
end
expect(err).
to include("You need to install git to be able to use gems from git repositories. For help installing git, please refer to GitHub's tutorial at https://help.github.com/articles/set-up-git")
end

it "prints a better error message when updating" do
build_git "foo"

install_gemfile <<-G
Expand Down

0 comments on commit f634d1e

Please sign in to comment.