git-fastclone 1.0.6 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/git-fastclone.rb +10 -6
- data/lib/git-fastclone/version.rb +1 -1
- data/spec/git_fastclone_runner_spec.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bf187b8673e91a3020f57e8c8160da9f9411b6f
|
4
|
+
data.tar.gz: a152d68f2366421d048522a436f86bfe91c189d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b830ddaece88719818f84f438546c62c01ec07a5a75eea884a01b403b13d8b2c51ba2d3b93aa521c4aabf421fa5b49ff426929bed4f343a4fb0744a4ea91f1e
|
7
|
+
data.tar.gz: 721878ddc71145362d772cd8a0312a51934c109b4f54ee6039c80c85e660a4bdc852b6e9da8f112e545c451115573a480ed3dc1557b4cb55e8ed1d94b797baba
|
data/lib/git-fastclone.rb
CHANGED
@@ -16,6 +16,7 @@ require 'optparse'
|
|
16
16
|
require 'fileutils'
|
17
17
|
require 'logger'
|
18
18
|
require 'cocaine'
|
19
|
+
require 'colorize'
|
19
20
|
|
20
21
|
# Contains helper module UrlHelper and execution class GitFastClone::Runner
|
21
22
|
module GitFastClone
|
@@ -63,7 +64,7 @@ module GitFastClone
|
|
63
64
|
DEFAULT_GIT_ALLOW_PROTOCOL = 'file:git:http:https:ssh'
|
64
65
|
|
65
66
|
attr_accessor :reference_dir, :prefetch_submodules, :reference_mutex, :reference_updated,
|
66
|
-
:options, :logger, :abs_clone_path, :using_local_repo
|
67
|
+
:options, :logger, :abs_clone_path, :using_local_repo, :verbose
|
67
68
|
|
68
69
|
def initialize
|
69
70
|
# Prefetch reference repos for submodules we've seen before
|
@@ -87,11 +88,13 @@ module GitFastClone
|
|
87
88
|
self.abs_clone_path = Dir.pwd
|
88
89
|
|
89
90
|
self.using_local_repo = false
|
91
|
+
|
92
|
+
self.verbose = false
|
90
93
|
end
|
91
94
|
|
92
95
|
def run
|
93
96
|
url, path, options = parse_inputs
|
94
|
-
|
97
|
+
puts 'Cloning'.bold + " #{url} to #{File.join(abs_clone_path, path)}"
|
95
98
|
Cocaine::CommandLine.environment['GIT_ALLOW_PROTOCOL'] =
|
96
99
|
ENV['GIT_ALLOW_PROTOCOL'] || DEFAULT_GIT_ALLOW_PROTOCOL
|
97
100
|
clone(url, options[:branch], path)
|
@@ -109,6 +112,7 @@ module GitFastClone
|
|
109
112
|
options[:branch] = branch
|
110
113
|
end
|
111
114
|
opts.on('-v', '--verbose', 'Verbose mode') do
|
115
|
+
self.verbose = true
|
112
116
|
self.logger = Logger.new(STDOUT)
|
113
117
|
Cocaine::CommandLine.logger = logger
|
114
118
|
end
|
@@ -129,7 +133,7 @@ module GitFastClone
|
|
129
133
|
path = ARGV[1] || path_from_git_url(url)
|
130
134
|
|
131
135
|
if Dir.exist?(path)
|
132
|
-
fail "Clone destination #{File.join(abs_clone_path, path)} already exists!"
|
136
|
+
fail "Clone destination #{File.join(abs_clone_path, path)} already exists!".red
|
133
137
|
end
|
134
138
|
|
135
139
|
self.reference_dir = ENV['REFERENCE_REPO_DIR'] || DEFAULT_REFERENCE_REPO_DIR
|
@@ -158,13 +162,13 @@ module GitFastClone
|
|
158
162
|
update_submodules(src_dir, url)
|
159
163
|
|
160
164
|
final_time = Time.now
|
161
|
-
|
165
|
+
puts "Checkout of #{src_dir} took #{final_time - initial_time}s".green
|
162
166
|
end
|
163
167
|
|
164
168
|
def update_submodules(pwd, url)
|
165
169
|
return unless File.exist?(File.join(abs_clone_path, pwd, '.gitmodules'))
|
166
170
|
|
167
|
-
|
171
|
+
puts 'Updating submodules...' if verbose
|
168
172
|
|
169
173
|
threads = []
|
170
174
|
submodule_url_list = []
|
@@ -251,7 +255,7 @@ module GitFastClone
|
|
251
255
|
reference_updated[repo_name] = true
|
252
256
|
|
253
257
|
rescue Cocaine::ExitStatusError => e
|
254
|
-
raise e if fail_hard
|
258
|
+
raise e.red if fail_hard
|
255
259
|
end
|
256
260
|
|
257
261
|
# This command will create and bring the mirror up-to-date on-demand,
|
@@ -69,7 +69,7 @@ describe GitFastClone::Runner do
|
|
69
69
|
allow(cocaine_commandline_double).to receive(:run) {}
|
70
70
|
allow(Cocaine::CommandLine).to receive(:new) { cocaine_commandline_double }
|
71
71
|
|
72
|
-
expect(Time).to receive(:now).twice
|
72
|
+
expect(Time).to receive(:now).twice { 0 }
|
73
73
|
expect(Cocaine::CommandLine).to receive(:new)
|
74
74
|
expect(cocaine_commandline_double).to receive(:run)
|
75
75
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-fastclone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Tauraso
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: colorize
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
28
42
|
description: A git command that uses reference repositories and threading to quickly
|
29
43
|
and recursively clone repositories with many nested submodules
|
30
44
|
email:
|
@@ -64,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
78
|
version: '0'
|
65
79
|
requirements: []
|
66
80
|
rubyforge_project:
|
67
|
-
rubygems_version: 2.
|
81
|
+
rubygems_version: 2.2.2
|
68
82
|
signing_key:
|
69
83
|
specification_version: 4
|
70
84
|
summary: git-clone --recursive on steroids!
|