Commit c13be8c6 authored by Eloy Durán's avatar Eloy Durán

[Command] Setup shallow clones by default or use `--no-shallow`.

parent a57091f7
...@@ -15,13 +15,17 @@ module Pod ...@@ -15,13 +15,17 @@ module Pod
DESC DESC
def self.options def self.options
[["--push", "Use this option to enable push access once granted"]].concat(super) [
["--no-shallow", "Clone full history so push will work"],
["--push", "Use this option to enable push access once granted"],
].concat(super)
end end
extend Executable extend Executable
executable :git executable :git
def initialize(argv) def initialize(argv)
@shallow = argv.flag?('shallow', true)
@push_option = argv.flag?('push') @push_option = argv.flag?('push')
super super
end end
...@@ -77,7 +81,11 @@ module Pod ...@@ -77,7 +81,11 @@ module Pod
# @return [void] # @return [void]
# #
def add_master_repo def add_master_repo
@command ||= Repo::Add.parse(['master', url, 'master']).run @command ||= begin
cmd = ['master', url, 'master']
cmd << '--shallow' if @shallow
Repo::Add.parse(cmd).run
end
end end
# Updates the master repo against the remote. # Updates the master repo against the remote.
......
...@@ -39,6 +39,28 @@ module Pod ...@@ -39,6 +39,28 @@ module Pod
url.should == test_repo_path.to_s url.should == test_repo_path.to_s
end end
it "creates a shallow clone of the `master` repo by default" do
Dir.chdir(test_repo_path) do
`echo 'touch' > touch && git add touch && git commit -m 'updated'`
end
# Need to use file:// to test local use of --depth=1
Command::Setup.any_instance.stubs(:read_only_url).returns("file://#{test_repo_path}")
run_command('setup')
Dir.chdir(config.repos_dir + 'master') do
`git log --pretty=oneline`.strip.split("\n").size.should == 1
end
end
it "creates a full clone of the `master` repo if requested" do
Dir.chdir(test_repo_path) do
`echo 'touch' > touch && git add touch && git commit -m 'updated'`
end
run_command('setup', '--no-shallow')
Dir.chdir(config.repos_dir + 'master') do
`git log --pretty=oneline`.strip.split("\n").size.should > 1
end
end
it "preserves push access for the `master` repo" do it "preserves push access for the `master` repo" do
output = run_command('setup') output = run_command('setup')
output.should.not.include "push" output.should.not.include "push"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment