git_cli 0.5.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Rakefile +2 -0
- data/git_cli.gemspec +5 -3
- data/lib/git_cli/add_commit.rb +26 -5
- data/lib/git_cli/branch.rb +36 -17
- data/lib/git_cli/delta.rb +175 -32
- data/lib/git_cli/git_core.rb +0 -21
- data/lib/git_cli/global.rb +8 -1
- data/lib/git_cli/repos.rb +21 -10
- data/lib/git_cli/tags.rb +34 -16
- data/lib/git_cli/version.rb +1 -1
- data/lib/git_cli.rb +49 -6
- metadata +40 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63fdc22895e48a0005e1fcaf0e5dc2291c6fdc26019ae566f1009424d083292c
|
4
|
+
data.tar.gz: 5e602e81ea3b378e185add93c6d8fb1ea97c48fc600c784c2e22aaa43beb0e21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a05ced2c8d7ec7b8efcc69ec6d1f41b80e11fbc5b3f1c1f5e7954800fd594d0d98aae0050ebab902d101ee7a7a653a2a989744f77bb7710aba367a10f3cf8719
|
7
|
+
data.tar.gz: e4a85fb3684d6b2377bf57ccd1e8e9c7c5b931997e22d1052c24de2a9c21d4792ff5c455e72e63d9e79fd9df863470b28bbb9e07dd8e6ea0e8ec5f29164f9901
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
data/git_cli.gemspec
CHANGED
@@ -27,8 +27,10 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "tlogger"
|
31
|
-
spec.add_dependency "toolrack"
|
32
|
-
spec.add_dependency "gvcs"
|
30
|
+
spec.add_dependency "tlogger"
|
31
|
+
spec.add_dependency "toolrack"
|
32
|
+
spec.add_dependency "gvcs"
|
33
33
|
spec.add_dependency "ptools", "~> 1.4.0"
|
34
|
+
|
35
|
+
spec.add_development_dependency 'devops_helper' #, ">= 0.2.0"
|
34
36
|
end
|
data/lib/git_cli/add_commit.rb
CHANGED
@@ -18,6 +18,8 @@
|
|
18
18
|
module GitCli
|
19
19
|
module AddCommit
|
20
20
|
|
21
|
+
class CommitError < StandardError; end
|
22
|
+
|
21
23
|
def add_to_staging(paths)
|
22
24
|
check_vcs
|
23
25
|
|
@@ -37,7 +39,13 @@ module GitCli
|
|
37
39
|
log_debug "Add : #{cmdln}"
|
38
40
|
|
39
41
|
os_exec(cmdln) do |st, res|
|
40
|
-
|
42
|
+
res.strip!
|
43
|
+
if not st.success?
|
44
|
+
raise CommitError, res
|
45
|
+
else
|
46
|
+
res
|
47
|
+
end
|
48
|
+
#[st.success?, res.strip]
|
41
49
|
end
|
42
50
|
end # add_to_staging
|
43
51
|
alias :add :add_to_staging
|
@@ -97,6 +105,7 @@ module GitCli
|
|
97
105
|
check_vcs
|
98
106
|
|
99
107
|
files = opts[:files] || []
|
108
|
+
[files] if not files.is_a?(Array)
|
100
109
|
# have to escape the message for command line purposes
|
101
110
|
msg = message.gsub("\"","\\\"").gsub("\\","\\\\")
|
102
111
|
|
@@ -117,10 +126,15 @@ module GitCli
|
|
117
126
|
log_debug "Commit : #{cmdln}"
|
118
127
|
|
119
128
|
os_exec(cmdln) do |st, res|
|
120
|
-
|
129
|
+
res.strip!
|
130
|
+
if not st.success?
|
131
|
+
raise CommitError, res
|
132
|
+
else
|
133
|
+
res
|
134
|
+
end
|
121
135
|
end
|
122
136
|
|
123
|
-
end
|
137
|
+
end # commit
|
124
138
|
|
125
139
|
def commit_all(msg)
|
126
140
|
check_vcs
|
@@ -142,10 +156,17 @@ module GitCli
|
|
142
156
|
log_debug "Commit All : #{cmdln}"
|
143
157
|
|
144
158
|
os_exec(cmdln) do |st, res|
|
145
|
-
|
159
|
+
res.strip!
|
160
|
+
if not st.success?
|
161
|
+
raise CommitError, res
|
162
|
+
else
|
163
|
+
res.strip
|
164
|
+
end
|
146
165
|
end
|
147
166
|
|
148
|
-
end
|
167
|
+
end # commit_all
|
168
|
+
|
169
|
+
|
149
170
|
|
150
171
|
end
|
151
172
|
end
|
data/lib/git_cli/branch.rb
CHANGED
@@ -18,6 +18,8 @@
|
|
18
18
|
|
19
19
|
module GitCli
|
20
20
|
module Branch
|
21
|
+
|
22
|
+
class BranchError < StandardError; end
|
21
23
|
|
22
24
|
def current_branch
|
23
25
|
|
@@ -50,9 +52,11 @@ module GitCli
|
|
50
52
|
# end
|
51
53
|
#end
|
52
54
|
|
53
|
-
|
55
|
+
res.strip
|
56
|
+
#[true, res.strip!]
|
54
57
|
else
|
55
|
-
|
58
|
+
raise BranchError, res.strip
|
59
|
+
#[false, res]
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
@@ -70,7 +74,8 @@ module GitCli
|
|
70
74
|
br.concat(rb)
|
71
75
|
end
|
72
76
|
|
73
|
-
|
77
|
+
br
|
78
|
+
#[true, br]
|
74
79
|
|
75
80
|
end # all_branches
|
76
81
|
|
@@ -95,9 +100,11 @@ module GitCli
|
|
95
100
|
res.each_line do |l|
|
96
101
|
b << l.strip
|
97
102
|
end
|
98
|
-
|
103
|
+
b
|
104
|
+
#[true, b]
|
99
105
|
else
|
100
|
-
|
106
|
+
raise BranchError, res.strip
|
107
|
+
#[false, res]
|
101
108
|
end
|
102
109
|
end
|
103
110
|
|
@@ -125,9 +132,11 @@ module GitCli
|
|
125
132
|
b << l.strip
|
126
133
|
end
|
127
134
|
|
128
|
-
[true, b]
|
135
|
+
#[true, b]
|
136
|
+
b
|
129
137
|
else
|
130
|
-
|
138
|
+
raise BranchError, res.strip
|
139
|
+
#[false, res]
|
131
140
|
end
|
132
141
|
end
|
133
142
|
|
@@ -151,9 +160,11 @@ module GitCli
|
|
151
160
|
log_debug "Switch branch : #{cmdln}"
|
152
161
|
res = os_exec(cmdln) do |st, res|
|
153
162
|
if st.success?
|
154
|
-
|
163
|
+
res.strip
|
164
|
+
#[true, res.strip]
|
155
165
|
else
|
156
|
-
|
166
|
+
raise BranchError, res.strip
|
167
|
+
#[false, res]
|
157
168
|
end
|
158
169
|
end
|
159
170
|
|
@@ -180,9 +191,11 @@ module GitCli
|
|
180
191
|
res = os_exec(cmdln) do |st, res|
|
181
192
|
|
182
193
|
if st.success?
|
183
|
-
|
194
|
+
res.strip
|
195
|
+
#[true, res.strip]
|
184
196
|
else
|
185
|
-
|
197
|
+
raise BranchError, res.strip
|
198
|
+
#[false, res]
|
186
199
|
end
|
187
200
|
end
|
188
201
|
|
@@ -205,9 +218,11 @@ module GitCli
|
|
205
218
|
res = os_exec(cmdln) do |st, res|
|
206
219
|
|
207
220
|
if st.success?
|
208
|
-
|
221
|
+
res.strip
|
222
|
+
#[true, res.strip]
|
209
223
|
else
|
210
|
-
|
224
|
+
raise BranchError, res.strip
|
225
|
+
#[false, res]
|
211
226
|
end
|
212
227
|
end
|
213
228
|
|
@@ -232,9 +247,11 @@ module GitCli
|
|
232
247
|
res = os_exec(cmdln) do |st, res|
|
233
248
|
|
234
249
|
if st.success?
|
235
|
-
|
250
|
+
res.strip
|
251
|
+
#[true, res.strip]
|
236
252
|
else
|
237
|
-
|
253
|
+
raise BranchError, res.strip
|
254
|
+
#[false, res]
|
238
255
|
end
|
239
256
|
end
|
240
257
|
|
@@ -260,9 +277,11 @@ module GitCli
|
|
260
277
|
res = os_exec(cmdln) do |st, res|
|
261
278
|
|
262
279
|
if st.success?
|
263
|
-
|
280
|
+
res.strip
|
281
|
+
#[true, res.strip]
|
264
282
|
else
|
265
|
-
|
283
|
+
raise BranchError, res.strip
|
284
|
+
#[false, res]
|
266
285
|
end
|
267
286
|
|
268
287
|
end
|
data/lib/git_cli/delta.rb
CHANGED
@@ -19,6 +19,102 @@
|
|
19
19
|
module GitCli
|
20
20
|
module Delta
|
21
21
|
|
22
|
+
class GitDeltaError < StandardError; end
|
23
|
+
class VCSItem
|
24
|
+
attr_reader :path, :full, :type
|
25
|
+
def initialize(type, path, full)
|
26
|
+
@type = type
|
27
|
+
@path = path
|
28
|
+
@full = full
|
29
|
+
end
|
30
|
+
|
31
|
+
# support sort
|
32
|
+
def <=>(val)
|
33
|
+
@path <=> val.path
|
34
|
+
end
|
35
|
+
end
|
36
|
+
class NewDir < VCSItem
|
37
|
+
def initialize(path, full)
|
38
|
+
super(:dir, path, full)
|
39
|
+
end
|
40
|
+
def to_s
|
41
|
+
"[N] #{@path}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
class NewFile < VCSItem
|
45
|
+
def initialize(path, full)
|
46
|
+
super(:file, path, full)
|
47
|
+
end
|
48
|
+
def to_s
|
49
|
+
"[N] #{@path}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
class ModifiedDir < VCSItem
|
53
|
+
def initialize(path, full)
|
54
|
+
super(:dir, path, full)
|
55
|
+
end
|
56
|
+
def to_s
|
57
|
+
"[M] #{@path}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
class ModifiedFile < VCSItem
|
61
|
+
def initialize(path, full)
|
62
|
+
super(:file, path, full)
|
63
|
+
end
|
64
|
+
def to_s
|
65
|
+
"[M] #{@path}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
class DeletedDir < VCSItem
|
69
|
+
def initialize(path, full)
|
70
|
+
super(:dir, path, full)
|
71
|
+
end
|
72
|
+
def to_s
|
73
|
+
"[D] #{@path}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
class DeletedFile < VCSItem
|
77
|
+
def initialize(path, full)
|
78
|
+
super(:file, path, full)
|
79
|
+
end
|
80
|
+
def to_s
|
81
|
+
"[D] #{@path}"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
class StagedDir < VCSItem
|
85
|
+
def initialize(path, full)
|
86
|
+
super(:dir, path, full)
|
87
|
+
end
|
88
|
+
def to_s
|
89
|
+
"[S] #{@path}"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
class StagedFile < VCSItem
|
93
|
+
def initialize(path, full)
|
94
|
+
super(:file, path, full)
|
95
|
+
end
|
96
|
+
def to_s
|
97
|
+
"[S] #{@path}"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
class ConflictedDir < VCSItem
|
101
|
+
def initialize(path, full)
|
102
|
+
super(:dir, path, full)
|
103
|
+
end
|
104
|
+
def to_s
|
105
|
+
"[C] #{@path}"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
class ConflictedFile < VCSItem
|
109
|
+
def initialize(path, full)
|
110
|
+
super(:file, path, full)
|
111
|
+
end
|
112
|
+
def to_s
|
113
|
+
"[C] #{@path}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
|
22
118
|
def status
|
23
119
|
|
24
120
|
check_vcs
|
@@ -34,11 +130,16 @@ module GitCli
|
|
34
130
|
log_debug "Status : #{cmdln}"
|
35
131
|
res = os_exec(cmdln) do |st, res|
|
36
132
|
|
37
|
-
if st.success?
|
38
|
-
|
133
|
+
if not st.success?
|
134
|
+
raise GitDeltaError, res
|
39
135
|
else
|
40
|
-
|
136
|
+
res
|
41
137
|
end
|
138
|
+
#if st.success?
|
139
|
+
# [true, res]
|
140
|
+
#else
|
141
|
+
# [false, res]
|
142
|
+
#end
|
42
143
|
end
|
43
144
|
|
44
145
|
end # status
|
@@ -52,6 +153,7 @@ module GitCli
|
|
52
153
|
cmd << @wsPath
|
53
154
|
cmd << "&&"
|
54
155
|
cmd << @vcs.exe_path
|
156
|
+
# list only non staged modifications
|
55
157
|
cmd << "diff --name-only --diff-filter=M"
|
56
158
|
|
57
159
|
cmdln = cmd.join(" ")
|
@@ -60,19 +162,21 @@ module GitCli
|
|
60
162
|
files = []
|
61
163
|
res = os_exec(cmdln) do |st, res|
|
62
164
|
|
63
|
-
if st.success?
|
165
|
+
if not st.success?
|
166
|
+
raise GitDeltaError, res
|
167
|
+
else
|
64
168
|
res.each_line do |l|
|
65
169
|
l.chomp!
|
66
|
-
|
67
|
-
|
170
|
+
full = File.join(@wsPath,l)
|
171
|
+
if File.directory?(full)
|
172
|
+
dirs << ModifiedDir.new(l,full)
|
68
173
|
else
|
69
|
-
files << l
|
174
|
+
files << ModifiedFile.new(l,full)
|
70
175
|
end
|
71
176
|
end
|
72
177
|
|
73
|
-
[true, dirs.sort, files.sort]
|
74
|
-
|
75
|
-
[false, [], []]
|
178
|
+
#[true, dirs.sort, files.sort]
|
179
|
+
[dirs.sort, files.sort]
|
76
180
|
end
|
77
181
|
|
78
182
|
end
|
@@ -95,19 +199,20 @@ module GitCli
|
|
95
199
|
files = []
|
96
200
|
res = os_exec(cmdln) do |st, res|
|
97
201
|
|
98
|
-
if st.success?
|
202
|
+
if not st.success?
|
203
|
+
raise GitDeltaError, res
|
204
|
+
else
|
99
205
|
res.each_line do |l|
|
100
206
|
l.chomp!
|
101
|
-
|
102
|
-
|
207
|
+
full = File.join(@wsPath,l)
|
208
|
+
if File.directory?(full)
|
209
|
+
dirs << ConflictedDir.new(l, full)
|
103
210
|
else
|
104
|
-
files << l
|
211
|
+
files << ConflictedFile.new(l, full)
|
105
212
|
end
|
106
213
|
end
|
107
214
|
|
108
|
-
[
|
109
|
-
else
|
110
|
-
[false, [], []]
|
215
|
+
[dirs.sort, files.sort]
|
111
216
|
end
|
112
217
|
|
113
218
|
end
|
@@ -130,19 +235,20 @@ module GitCli
|
|
130
235
|
files = []
|
131
236
|
res = os_exec(cmdln) do |st, res|
|
132
237
|
|
133
|
-
if st.success?
|
238
|
+
if not st.success?
|
239
|
+
raise GitDeltaError, res
|
240
|
+
else
|
134
241
|
res.each_line do |l|
|
135
242
|
l.chomp!
|
136
|
-
|
137
|
-
|
243
|
+
full = File.join(@wsPath,l)
|
244
|
+
if File.directory?(full)
|
245
|
+
dirs << NewDir.new(l,full)
|
138
246
|
else
|
139
|
-
files << l
|
247
|
+
files << NewFile.new(l,full)
|
140
248
|
end
|
141
249
|
end
|
142
250
|
|
143
|
-
[
|
144
|
-
else
|
145
|
-
[false, [], []]
|
251
|
+
[dirs.sort, files.sort]
|
146
252
|
end
|
147
253
|
end
|
148
254
|
|
@@ -165,27 +271,64 @@ module GitCli
|
|
165
271
|
files = []
|
166
272
|
res = os_exec(cmdln) do |st, res|
|
167
273
|
|
168
|
-
if st.success?
|
274
|
+
if not st.success?
|
275
|
+
raise GitDeltaError, res
|
276
|
+
else
|
169
277
|
res.each_line do |l|
|
170
278
|
l.chomp!
|
171
|
-
|
172
|
-
|
279
|
+
full = File.join(@wsPath,l)
|
280
|
+
if File.directory?(full)
|
281
|
+
dirs << DeletedDir.new(l,full)
|
173
282
|
else
|
174
|
-
files << l
|
283
|
+
files << DeletedFile.new(l,full)
|
175
284
|
end
|
176
285
|
end
|
177
286
|
|
178
|
-
[
|
179
|
-
else
|
180
|
-
[false, [], []]
|
287
|
+
[dirs.sort, files.sort]
|
181
288
|
end
|
182
289
|
end
|
183
290
|
|
184
291
|
end # deleted_files
|
185
292
|
|
293
|
+
def staged_files
|
294
|
+
|
295
|
+
check_vcs
|
296
|
+
|
297
|
+
cmd = []
|
298
|
+
cmd << "cd"
|
299
|
+
cmd << @wsPath
|
300
|
+
cmd << "&&"
|
301
|
+
cmd << @vcs.exe_path
|
302
|
+
cmd << "diff --name-only --cached"
|
303
|
+
|
304
|
+
cmdln = cmd.join(" ")
|
305
|
+
log_debug "Staged Files : #{cmdln}"
|
306
|
+
dirs = []
|
307
|
+
files = []
|
308
|
+
res = os_exec(cmdln) do |st, res|
|
309
|
+
|
310
|
+
if not st.success?
|
311
|
+
raise GitDeltaError, res
|
312
|
+
else
|
313
|
+
res.each_line do |l|
|
314
|
+
l.chomp!
|
315
|
+
full = File.join(@wsPath,l)
|
316
|
+
if File.directory?(full)
|
317
|
+
dirs << StagedDir.new(l,full)
|
318
|
+
else
|
319
|
+
files << StagedFile.new(l,full)
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
[dirs.sort, files.sort]
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
end # staged_files
|
328
|
+
|
186
329
|
def reset_file_changes(path)
|
187
330
|
|
188
|
-
raise_if_empty(path, "Path cannot be empty for reset file changes operation",
|
331
|
+
raise_if_empty(path, "Path cannot be empty for reset file changes operation", GitDeltaError)
|
189
332
|
|
190
333
|
check_vcs
|
191
334
|
|
data/lib/git_cli/git_core.rb
CHANGED
@@ -67,27 +67,6 @@ module GitCli
|
|
67
67
|
[true, gpath]
|
68
68
|
end
|
69
69
|
|
70
|
-
#if Antrapol::ToolRack::RuntimeUtils.on_linux?
|
71
|
-
# require_relative 'os/linux/utils'
|
72
|
-
# GitCli::Global.instance.logger.debug "Running on Linux is detected"
|
73
|
-
# st, path = GitCli::OS::Linux::Utils.is_installed?("git")
|
74
|
-
# GitCli::Global.instance.logger.debug "'git' install check return [#{st},#{path}]"
|
75
|
-
|
76
|
-
# [st, path]
|
77
|
-
|
78
|
-
#elsif Antrapol::ToolRack::RuntimeUtils.on_mac?
|
79
|
-
# GitCli::Global.instance.logger.debug "Running on MacOS is detected"
|
80
|
-
# require_relative 'os/macos/utils'
|
81
|
-
|
82
|
-
#elsif Antrapol::ToolRack::RuntimeUtils.on_window?
|
83
|
-
# GitCli::Global.instance.logger.debug "Running on MS Window is detected"
|
84
|
-
# require_relative 'os/win/utils'
|
85
|
-
|
86
|
-
#else
|
87
|
-
# GitCli::Global.instance.logger.debug "Cannot determine which OS am i running...Confused"
|
88
|
-
# raise RuntimeError, "Unknown platform"
|
89
|
-
#end
|
90
|
-
|
91
70
|
end # is_installed?
|
92
71
|
|
93
72
|
end
|
data/lib/git_cli/global.rb
CHANGED
@@ -24,8 +24,15 @@ module GitCli
|
|
24
24
|
|
25
25
|
attr_reader :logger
|
26
26
|
def initialize
|
27
|
-
|
27
|
+
debug = ENV['GitCli_Debug']
|
28
|
+
debugOut = ENV['GitCli_DebugOut'] || STDOUT
|
29
|
+
if debug.nil?
|
30
|
+
@logger = Tlogger.new('git_cli.log', 5, 1024*1024*10)
|
31
|
+
else
|
32
|
+
@logger = Tlogger.new(debugOut)
|
33
|
+
end
|
28
34
|
end
|
35
|
+
|
29
36
|
end
|
30
37
|
|
31
38
|
class GitCliException < StandardError; end
|
data/lib/git_cli/repos.rb
CHANGED
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
module GitCli
|
20
20
|
module Repos
|
21
|
+
class ReposError < StandardError; end
|
21
22
|
|
22
23
|
def remote_config
|
23
24
|
check_vcs
|
@@ -32,21 +33,26 @@ module GitCli
|
|
32
33
|
cmdln = cmd.join(" ")
|
33
34
|
log_debug "Remote config : #{cmdln}"
|
34
35
|
res = os_exec(cmdln) do |st, res|
|
35
|
-
|
36
|
+
|
36
37
|
if st.success?
|
37
38
|
|
38
39
|
remotes = { }
|
39
40
|
res.each_line do |l|
|
40
41
|
ls = l.split("\t")
|
41
42
|
lss = ls[1].split(" ")
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
|
44
|
+
remotes[ls[0]] = { } if is_empty?(remotes[ls[0]])
|
45
|
+
rem = remotes[ls[0]]
|
46
|
+
type = lss[-1]
|
47
|
+
type.gsub!("(","").gsub!(")","")
|
48
|
+
rem[type] = lss[0]
|
45
49
|
end
|
46
50
|
|
47
|
-
[true, remotes]
|
51
|
+
#[true, remotes]
|
52
|
+
remotes
|
48
53
|
else
|
49
|
-
|
54
|
+
raise ReposError, res.strip
|
55
|
+
#[false, res]
|
50
56
|
end
|
51
57
|
end
|
52
58
|
|
@@ -74,9 +80,11 @@ module GitCli
|
|
74
80
|
res = os_exec(cmdln) do |st, res|
|
75
81
|
|
76
82
|
if st.success?
|
77
|
-
[true, res.strip]
|
83
|
+
#[true, res.strip]
|
84
|
+
res.strip
|
78
85
|
else
|
79
|
-
|
86
|
+
raise ReposError, res.strip
|
87
|
+
#[false, res.strip]
|
80
88
|
end
|
81
89
|
end
|
82
90
|
|
@@ -103,13 +111,16 @@ module GitCli
|
|
103
111
|
res = os_exec(cmdln) do |st, res|
|
104
112
|
|
105
113
|
if st.success?
|
106
|
-
[true, res.strip]
|
114
|
+
#[true, res.strip]
|
115
|
+
res.strip
|
107
116
|
else
|
108
|
-
|
117
|
+
raise ReposError, res.strip
|
118
|
+
#[false, res.strip]
|
109
119
|
end
|
110
120
|
end
|
111
121
|
|
112
122
|
end # remove_remote
|
123
|
+
alias_method :remove_del, :remove_remote
|
113
124
|
|
114
125
|
|
115
126
|
|
data/lib/git_cli/tags.rb
CHANGED
@@ -19,6 +19,8 @@
|
|
19
19
|
module GitCli
|
20
20
|
module Tags
|
21
21
|
|
22
|
+
class TagError < StandardError; end
|
23
|
+
|
22
24
|
def all_tags
|
23
25
|
|
24
26
|
check_vcs
|
@@ -35,9 +37,11 @@ module GitCli
|
|
35
37
|
res = os_exec(cmdln) do |st, res|
|
36
38
|
|
37
39
|
if st.success?
|
38
|
-
|
40
|
+
res.strip
|
41
|
+
#[true, res.strip!]
|
39
42
|
else
|
40
|
-
|
43
|
+
raise TagError, res
|
44
|
+
#[false, res]
|
41
45
|
end
|
42
46
|
end
|
43
47
|
|
@@ -144,9 +148,11 @@ module GitCli
|
|
144
148
|
log_debug "New tag : #{cmdln}"
|
145
149
|
res = os_exec(cmdln) do |st, res|
|
146
150
|
if st.success?
|
147
|
-
[true, res.strip!]
|
151
|
+
#[true, res.strip!]
|
152
|
+
res.strip
|
148
153
|
else
|
149
|
-
|
154
|
+
raise TagError, res
|
155
|
+
#[false, res]
|
150
156
|
end
|
151
157
|
end
|
152
158
|
|
@@ -186,9 +192,11 @@ module GitCli
|
|
186
192
|
log_debug "New tag from commit ID : #{cmdln}"
|
187
193
|
res = os_exec(cmdln) do |st, res|
|
188
194
|
if st.success?
|
189
|
-
|
195
|
+
res.strip
|
196
|
+
#[true, res.strip!]
|
190
197
|
else
|
191
|
-
|
198
|
+
raise TagError, res
|
199
|
+
#[false, res]
|
192
200
|
end
|
193
201
|
end
|
194
202
|
|
@@ -211,9 +219,11 @@ module GitCli
|
|
211
219
|
res = os_exec(cmdln) do |st, res|
|
212
220
|
|
213
221
|
if st.success?
|
214
|
-
[true, res.strip!]
|
222
|
+
#[true, res.strip!]
|
223
|
+
res.strip
|
215
224
|
else
|
216
|
-
|
225
|
+
raise TagError, res
|
226
|
+
#[false, res]
|
217
227
|
end
|
218
228
|
end
|
219
229
|
|
@@ -241,9 +251,11 @@ module GitCli
|
|
241
251
|
log_debug "Show tag '#{tag}' #{not_empty?(format) ? "[#{format}]" : ""} : #{cmdln}"
|
242
252
|
res = os_exec(cmdln) do |st, res|
|
243
253
|
if st.success?
|
244
|
-
|
254
|
+
res.strip
|
255
|
+
#[true, res.strip!]
|
245
256
|
else
|
246
|
-
|
257
|
+
raise TagError, res
|
258
|
+
#[false, res]
|
247
259
|
end
|
248
260
|
end
|
249
261
|
|
@@ -266,9 +278,11 @@ module GitCli
|
|
266
278
|
log_debug "Delete tag '#{tag}' : #{cmdln}"
|
267
279
|
res = os_exec(cmdln) do |st, res|
|
268
280
|
if st.success?
|
269
|
-
|
281
|
+
res.strip
|
282
|
+
#[true, res.strip!]
|
270
283
|
else
|
271
|
-
|
284
|
+
raise TagError, res
|
285
|
+
#[false, res]
|
272
286
|
end
|
273
287
|
end
|
274
288
|
|
@@ -293,9 +307,11 @@ module GitCli
|
|
293
307
|
log_debug "Delete remote tag '#{tag}' at '#{repos}': #{cmdln}"
|
294
308
|
res = os_exec(cmdln) do |st, res|
|
295
309
|
if st.success?
|
296
|
-
|
310
|
+
res
|
311
|
+
#[true, res.strip!]
|
297
312
|
else
|
298
|
-
|
313
|
+
raise TagError, res
|
314
|
+
#[false, res]
|
299
315
|
end
|
300
316
|
end
|
301
317
|
|
@@ -321,9 +337,11 @@ module GitCli
|
|
321
337
|
log_debug "Checkout tag '#{tag}' into branch '#{branch}': #{cmdln}"
|
322
338
|
res = os_exec(cmdln) do |st, res|
|
323
339
|
if st.success?
|
324
|
-
|
340
|
+
res.strip
|
341
|
+
#[true, res.strip!]
|
325
342
|
else
|
326
|
-
|
343
|
+
raise TagError, res
|
344
|
+
#[false, res]
|
327
345
|
end
|
328
346
|
end
|
329
347
|
|
data/lib/git_cli/version.rb
CHANGED
data/lib/git_cli.rb
CHANGED
@@ -118,13 +118,21 @@ module GitCli
|
|
118
118
|
include GitCli::Repos
|
119
119
|
include GitCli::Stash
|
120
120
|
|
121
|
+
include TR::CondUtils
|
122
|
+
|
121
123
|
attr_accessor :repos
|
122
|
-
def initialize(
|
124
|
+
def initialize(path, vcs = nil)
|
123
125
|
|
124
|
-
raise_if_empty(vcs , "VCS cannot be empty", GitCliException)
|
126
|
+
#raise_if_empty(vcs , "VCS cannot be empty", GitCliException)
|
125
127
|
raise_if_empty(path, "Workspace path cannot be empty", GitCliException)
|
126
|
-
|
127
|
-
|
128
|
+
|
129
|
+
if is_empty?(vcs)
|
130
|
+
@vcs = Gvcs::Vcs.new
|
131
|
+
else
|
132
|
+
@vcs = vcs
|
133
|
+
end
|
134
|
+
|
135
|
+
#@vcs = vcs
|
128
136
|
@givenPath = path
|
129
137
|
|
130
138
|
@wsPath = File.expand_path(@givenPath)
|
@@ -151,6 +159,7 @@ module GitCli
|
|
151
159
|
|
152
160
|
def is_repos_exist?(name)
|
153
161
|
found = false
|
162
|
+
load_remote_to_repos
|
154
163
|
@repos.each do |re|
|
155
164
|
if re.name == name
|
156
165
|
found = true
|
@@ -161,8 +170,15 @@ module GitCli
|
|
161
170
|
end # is_repos_exist?
|
162
171
|
|
163
172
|
def is_workspace?
|
164
|
-
|
165
|
-
|
173
|
+
begin
|
174
|
+
status
|
175
|
+
true
|
176
|
+
rescue GitDeltaError => ex
|
177
|
+
log_debug ex.message
|
178
|
+
false
|
179
|
+
end
|
180
|
+
#st, res = status
|
181
|
+
#st
|
166
182
|
end
|
167
183
|
|
168
184
|
def workspace_root
|
@@ -195,6 +211,16 @@ module GitCli
|
|
195
211
|
|
196
212
|
end # workspace_root
|
197
213
|
|
214
|
+
def load_remote_to_repos
|
215
|
+
conf = remote_config
|
216
|
+
conf.each do |k,v|
|
217
|
+
repo = Gvcs::Repository.new(k, v.values.first)
|
218
|
+
repo.support_fetch if v.keys.include?("fetch")
|
219
|
+
repo.support_push if v.keys.include?("push")
|
220
|
+
add_repos(repo)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
198
224
|
end # Gvcs::Workspace
|
199
225
|
|
200
226
|
|
@@ -208,12 +234,29 @@ module GitCli
|
|
208
234
|
@url = url
|
209
235
|
#@branches = branches
|
210
236
|
@sslVerify = true
|
237
|
+
|
238
|
+
@fetch = false
|
239
|
+
@push = false
|
211
240
|
end
|
212
241
|
|
213
242
|
def ssl_verify(bool)
|
214
243
|
@sslVerify = bool
|
215
244
|
end
|
216
245
|
|
246
|
+
def support_fetch
|
247
|
+
@fetch = true
|
248
|
+
end
|
249
|
+
def is_fetch_supported?
|
250
|
+
@fetch
|
251
|
+
end
|
252
|
+
|
253
|
+
def support_push
|
254
|
+
@push = true
|
255
|
+
end
|
256
|
+
def is_push_supported?
|
257
|
+
@push
|
258
|
+
end
|
259
|
+
|
217
260
|
end # repository
|
218
261
|
|
219
262
|
end
|
metadata
CHANGED
@@ -1,71 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Liaw
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: tlogger
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - "
|
17
|
+
- - ">="
|
17
18
|
- !ruby/object:Gem::Version
|
18
|
-
version: '0
|
19
|
-
name: tlogger
|
20
|
-
prerelease: false
|
19
|
+
version: '0'
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: toolrack
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- - "
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0
|
33
|
-
name: toolrack
|
34
|
-
prerelease: false
|
33
|
+
version: '0'
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: gvcs
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- - "
|
45
|
+
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0
|
47
|
-
name: gvcs
|
48
|
-
prerelease: false
|
47
|
+
version: '0'
|
49
48
|
type: :runtime
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: ptools
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
59
|
- - "~>"
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: 1.4.0
|
61
|
-
name: ptools
|
62
|
-
prerelease: false
|
63
62
|
type: :runtime
|
63
|
+
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.4.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: devops_helper
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Interface to GIT via command line interface instead of some sor of library
|
70
84
|
email:
|
71
85
|
- chrisliaw@antrapol.com
|
@@ -107,7 +121,7 @@ homepage: https://github.com/chrisliaw/git_cli
|
|
107
121
|
licenses:
|
108
122
|
- GPL-3.0
|
109
123
|
metadata: {}
|
110
|
-
post_install_message:
|
124
|
+
post_install_message:
|
111
125
|
rdoc_options: []
|
112
126
|
require_paths:
|
113
127
|
- lib
|
@@ -122,9 +136,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
136
|
- !ruby/object:Gem::Version
|
123
137
|
version: '0'
|
124
138
|
requirements: []
|
125
|
-
|
126
|
-
|
127
|
-
signing_key:
|
139
|
+
rubygems_version: 3.2.22
|
140
|
+
signing_key:
|
128
141
|
specification_version: 4
|
129
142
|
summary: GIT command line interface
|
130
143
|
test_files: []
|