scm_workspace 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/scm_workspace/version.rb +1 -1
- data/lib/scm_workspace.rb +33 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 629f7fb29d5ef531cceaef646f520543465b360c
|
4
|
+
data.tar.gz: 34de1677365fe70f213b18ab0297afd4ec510849
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d6eefbb6c85f92d72b78d6a339bf47441588271ecdbd122243217c62997d5de277b06609aa66c5cf24327c667f81c732709db116abd6247e342381e274db483
|
7
|
+
data.tar.gz: 0c5ae5a04d84b6d08d06dbf7b7548e9b35169fe3f1dda63ad9143a91fa72b10cea6b033ec6fff9126fb0d4516ce25290a2015b1c4259b2022a37c7526dccdb9c
|
data/lib/scm_workspace.rb
CHANGED
@@ -61,7 +61,7 @@ class ScmWorkspace
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def configure(url)
|
64
|
-
|
64
|
+
unless empty?
|
65
65
|
msg = "#{repo_dir} is not empty. You must clear it"
|
66
66
|
msg << "\nls -la #{repo_dir}" << `ls -la #{repo_dir}` if verbose
|
67
67
|
raise msg
|
@@ -87,8 +87,8 @@ class ScmWorkspace
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def clear
|
90
|
-
return unless Dir.exist?(
|
91
|
-
fileutils.chdir(
|
90
|
+
return unless Dir.exist?(root)
|
91
|
+
fileutils.chdir(root) do
|
92
92
|
(Dir.glob("*") + Dir.glob(".*")).each do |d|
|
93
93
|
next if d =~ /\A\.+\Z/
|
94
94
|
fileutils.remove_entry_secure(d)
|
@@ -96,6 +96,13 @@ class ScmWorkspace
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
+
def empty?
|
100
|
+
return true unless Dir.exist?(root)
|
101
|
+
fileutils.chdir(root) do
|
102
|
+
return (Dir.glob("*") + Dir.glob(".*")).reject{|d| d =~ /\A\.+\Z/}.empty?
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
99
106
|
def checkout(branch_name)
|
100
107
|
logger.info("-" * 100)
|
101
108
|
system_at_root!("git checkout #{branch_name}")
|
@@ -147,11 +154,12 @@ class ScmWorkspace
|
|
147
154
|
end
|
148
155
|
|
149
156
|
def current_sha
|
157
|
+
return nil unless accessible?
|
150
158
|
system_at_root!("git log -1").scan(/^commit ([0-9a-f]+)$/).flatten.first
|
151
159
|
end
|
152
160
|
|
153
161
|
def current_commit_key
|
154
|
-
return nil unless
|
162
|
+
return nil unless accessible?
|
155
163
|
result = current_sha
|
156
164
|
case scm_type
|
157
165
|
when :svn then
|
@@ -177,7 +185,7 @@ class ScmWorkspace
|
|
177
185
|
end
|
178
186
|
|
179
187
|
def branch_names
|
180
|
-
return nil unless
|
188
|
+
return nil unless accessible?
|
181
189
|
case scm_type
|
182
190
|
when :git then
|
183
191
|
result = system_at_root!("git branch -r").lines.map{|path| path.sub(/\A\s*origin\//, '').strip }
|
@@ -196,12 +204,12 @@ class ScmWorkspace
|
|
196
204
|
end
|
197
205
|
|
198
206
|
def tag_names
|
199
|
-
return nil unless
|
207
|
+
return nil unless accessible?
|
200
208
|
system_at_root!("git tag").lines.map{|path| path.strip.strip }
|
201
209
|
end
|
202
210
|
|
203
211
|
def url
|
204
|
-
return nil unless
|
212
|
+
return nil unless accessible?
|
205
213
|
case scm_type
|
206
214
|
when :git then remotes["origin"]
|
207
215
|
when :svn then svn_info[:repository_root]
|
@@ -209,7 +217,7 @@ class ScmWorkspace
|
|
209
217
|
end
|
210
218
|
|
211
219
|
def current_branch_name
|
212
|
-
return nil unless
|
220
|
+
return nil unless accessible?
|
213
221
|
case scm_type
|
214
222
|
when :git then git_current_branch_name
|
215
223
|
when :svn then svn_current_branch_name
|
@@ -247,7 +255,7 @@ class ScmWorkspace
|
|
247
255
|
end
|
248
256
|
|
249
257
|
def current_tag_names
|
250
|
-
return nil unless
|
258
|
+
return nil unless accessible?
|
251
259
|
system_at_root!("git describe --tags #{current_sha}").lines.map(&:strip) rescue []
|
252
260
|
end
|
253
261
|
|
@@ -256,12 +264,24 @@ class ScmWorkspace
|
|
256
264
|
@root
|
257
265
|
end
|
258
266
|
|
267
|
+
# submoduleでない場合 true
|
268
|
+
# submoduleの場合 true
|
269
|
+
# gitの対象外の場合 false
|
270
|
+
def accessible?
|
271
|
+
File.exist?(File.join(repo_dir, ".git"))
|
272
|
+
end
|
273
|
+
|
274
|
+
# submoduleでない場合 true
|
275
|
+
# submoduleの場合 false
|
276
|
+
# gitの対象外の場合 false
|
259
277
|
def configured?
|
260
278
|
Dir.exist?(File.join(repo_dir, ".git"))
|
261
279
|
end
|
262
280
|
|
281
|
+
|
263
282
|
def cleared?
|
264
|
-
!configured?
|
283
|
+
# !configured?
|
284
|
+
empty?
|
265
285
|
end
|
266
286
|
|
267
287
|
def contains?(obj)
|
@@ -292,17 +312,17 @@ class ScmWorkspace
|
|
292
312
|
}
|
293
313
|
|
294
314
|
def git_repo?
|
295
|
-
return nil unless
|
315
|
+
return nil unless accessible?
|
296
316
|
!remotes.empty? rescue false
|
297
317
|
end
|
298
318
|
|
299
319
|
def svn_repo?
|
300
|
-
return nil unless
|
320
|
+
return nil unless accessible?
|
301
321
|
Dir.exist?(File.join(repo_dir, '.git', 'svn'))
|
302
322
|
end
|
303
323
|
|
304
324
|
def scm_type
|
305
|
-
return nil unless
|
325
|
+
return nil unless accessible?
|
306
326
|
return :git if git_repo?
|
307
327
|
return :svn if svn_repo?
|
308
328
|
nil
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scm_workspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akima
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tengine_support
|