Merge pull request #6991 from MikeMcQuaid/tap_full_clone
tap: default to full clones.
This commit is contained in:
commit
63f73c09e8
@ -60,7 +60,8 @@ module Homebrew
|
||||
quiet: args.quieter?
|
||||
rescue TapRemoteMismatchError => e
|
||||
odie e
|
||||
rescue TapAlreadyTappedError, TapAlreadyUnshallowError # rubocop:disable Lint/SuppressedException
|
||||
rescue TapAlreadyTappedError
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -258,18 +258,6 @@ class TapAlreadyTappedError < RuntimeError
|
||||
end
|
||||
end
|
||||
|
||||
class TapAlreadyUnshallowError < RuntimeError
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name)
|
||||
@name = name
|
||||
|
||||
super <<~EOS
|
||||
Tap #{name} already a full clone.
|
||||
EOS
|
||||
end
|
||||
end
|
||||
|
||||
class TapPinStatusError < RuntimeError
|
||||
attr_reader :name, :pinned
|
||||
|
||||
|
||||
@ -233,7 +233,7 @@ class Tap
|
||||
def install(options = {})
|
||||
require "descriptions"
|
||||
|
||||
full_clone = options.fetch(:full_clone, false)
|
||||
full_clone = options.fetch(:full_clone, true)
|
||||
quiet = options.fetch(:quiet, false)
|
||||
requested_remote = options[:clone_target] || default_remote
|
||||
# if :force_auto_update is unset, use nil, meaning "no change"
|
||||
@ -245,9 +245,12 @@ class Tap
|
||||
odie "#{name} was moved. Tap homebrew/cask-#{repo} instead."
|
||||
end
|
||||
|
||||
if installed? && force_auto_update.nil?
|
||||
raise TapAlreadyTappedError, name unless full_clone
|
||||
raise TapAlreadyUnshallowError, name unless shallow?
|
||||
if installed?
|
||||
if options[:clone_target] && requested_remote != remote
|
||||
raise TapRemoteMismatchError.new(name, @remote, requested_remote)
|
||||
end
|
||||
|
||||
raise TapAlreadyTappedError, name if force_auto_update.nil?
|
||||
end
|
||||
|
||||
# ensure git is installed
|
||||
@ -259,10 +262,6 @@ class Tap
|
||||
return if !full_clone || !shallow?
|
||||
end
|
||||
|
||||
if options[:clone_target] && requested_remote != remote
|
||||
raise TapRemoteMismatchError.new(name, @remote, requested_remote)
|
||||
end
|
||||
|
||||
ohai "Unshallowing #{name}" unless quiet
|
||||
args = %w[fetch --unshallow]
|
||||
args << "-q" if quiet
|
||||
|
||||
@ -207,7 +207,6 @@ describe Tap do
|
||||
it "raises an error when the remote doesn't match" do
|
||||
setup_git_repo
|
||||
already_tapped_tap = described_class.new("Homebrew", "foo")
|
||||
touch subject.path/".git/shallow"
|
||||
expect(already_tapped_tap).to be_installed
|
||||
wrong_remote = "#{subject.remote}-oops"
|
||||
expect {
|
||||
@ -215,12 +214,6 @@ describe Tap do
|
||||
}.to raise_error(TapRemoteMismatchError)
|
||||
end
|
||||
|
||||
it "raises an error when the Tap is already unshallow" do
|
||||
setup_git_repo
|
||||
already_tapped_tap = described_class.new("Homebrew", "foo")
|
||||
expect { already_tapped_tap.install full_clone: true }.to raise_error(TapAlreadyUnshallowError)
|
||||
end
|
||||
|
||||
describe "force_auto_update" do
|
||||
before do
|
||||
setup_git_repo
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user