1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[bundler/bundler] Clearer MissingRevision git errors

https://github.com/bundler/bundler/commit/b47d23edf5
This commit is contained in:
David Rodríguez 2019-04-10 11:58:30 +02:00 committed by Hiroshi SHIBATA
parent e405aede09
commit 4b1395ab4a
No known key found for this signature in database
GPG key ID: F9CF13417264FAC2
2 changed files with 16 additions and 9 deletions

View file

@ -26,7 +26,11 @@ module Bundler
end
class GitCommandError < GitError
attr_reader :command
def initialize(command, path = nil, extra_info = nil)
@command = command
msg = String.new
msg << "Git error: command `git #{command}` in directory #{SharedHelpers.pwd} has failed."
msg << "\n#{extra_info}" if extra_info
@ -35,10 +39,10 @@ module Bundler
end
end
class MissingGitRevisionError < GitError
def initialize(ref, repo)
class MissingGitRevisionError < GitCommandError
def initialize(command, path, ref, repo)
msg = "Revision #{ref} does not exist in the repository #{repo}. Maybe you misspelled it?"
super msg
super command, path, msg
end
end
@ -63,8 +67,8 @@ module Bundler
begin
@revision ||= find_local_revision
rescue GitCommandError
raise MissingGitRevisionError.new(ref, URICredentialsFilter.credential_filtered_uri(uri))
rescue GitCommandError => e
raise MissingGitRevisionError.new(e.command, path, ref, URICredentialsFilter.credential_filtered_uri(uri))
end
@revision
@ -135,8 +139,8 @@ module Bundler
begin
git "reset --hard #{@revision}"
rescue GitCommandError
raise MissingGitRevisionError.new(@revision, URICredentialsFilter.credential_filtered_uri(uri))
rescue GitCommandError => e
raise MissingGitRevisionError.new(e.command, path, @revision, URICredentialsFilter.credential_filtered_uri(uri))
end
if submodules

View file

@ -136,8 +136,11 @@ RSpec.describe Bundler::Source::Git::GitProxy do
expect(subject).not_to receive(:git)
expect { subject.copy_to(destination, submodules) }.
to raise_error(Bundler::Source::Git::MissingGitRevisionError,
"Revision #{revision} does not exist in the repository #{uri}. Maybe you misspelled it?")
to raise_error(
Bundler::Source::Git::MissingGitRevisionError,
"Git error: command `git command` in directory #{destination} has failed.\n" \
"Revision #{revision} does not exist in the repository #{uri}. Maybe you misspelled it?" \
)
end
end
end