gvcsfx 0.4.2 → 0.6.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/.gitignore +1 -0
- data/Gemfile +10 -5
- data/Rakefile +2 -0
- data/fx/main.fxml +11 -6
- data/gvcsfx.gemspec +7 -5
- data/handlers/tab_state.rb +56 -7
- data/handlers/workspace.rb +22 -7
- data/lib/version.rb +1 -1
- metadata +35 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c0293a49d22f8e09e45605523099695de77f18f59ff8c11a195ebe2dec80683
|
|
4
|
+
data.tar.gz: b65d803bf3387dbddfb6e618acac485c66ab8820105796902da246ba96b5911c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3cc54dc3d0915b7e8658d3022bb24dcdaae4e284a2c1961c6a1ee65603428e754d25bc377e97ff3549a7cd3fac4671c5d5fa2738888efdbcea7b0b39c4c44b6a
|
|
7
|
+
data.tar.gz: 14e0e130bdef794749968ee667122ae35c895e9917a4edbd293f2108555848d167231ac9b0f8a1f94a35a368340a238f1850209d0569bbe94d6157593cb44b52
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
|
@@ -16,9 +16,14 @@
|
|
|
16
16
|
|
|
17
17
|
source "https://rubygems.org"
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
gem 'jrubyfx'
|
|
21
|
-
gem 'toolrack', '~> 0.4'
|
|
19
|
+
gemspec
|
|
22
20
|
|
|
23
|
-
gem '
|
|
24
|
-
|
|
21
|
+
#gem 'git_cli', path: '../git/git_cli'
|
|
22
|
+
|
|
23
|
+
#gem 'jrubyfx-openjfx.patch', path: '/mnt/Vault/08.Dev/01.Workspaces/jrubyfx_patches/jrubyfx'
|
|
24
|
+
#gem 'tlogger', '~> 0.21'
|
|
25
|
+
#gem 'jrubyfx'
|
|
26
|
+
#gem 'toolrack', '~> 0.4'
|
|
27
|
+
#
|
|
28
|
+
#gem 'gvcs', '~> 0.1'
|
|
29
|
+
#gem 'git_cli', '~> 0.1'
|
data/Rakefile
CHANGED
data/fx/main.fxml
CHANGED
|
@@ -127,8 +127,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
127
127
|
<GridPane layoutX="240.0" layoutY="115.0" maxWidth="1.7976931348623157E308" AnchorPane.bottomAnchor="8.0" AnchorPane.leftAnchor="8.0" AnchorPane.rightAnchor="8.0" AnchorPane.topAnchor="8.0">
|
|
128
128
|
<columnConstraints>
|
|
129
129
|
<ColumnConstraints hgrow="NEVER" maxWidth="215.0" />
|
|
130
|
-
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="
|
|
131
|
-
<ColumnConstraints hgrow="
|
|
130
|
+
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="642.0" />
|
|
131
|
+
<ColumnConstraints hgrow="NEVER" maxWidth="288.0" minWidth="288.0" prefWidth="288.0" />
|
|
132
132
|
</columnConstraints>
|
|
133
133
|
<rowConstraints>
|
|
134
134
|
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="28.0" vgrow="NEVER" />
|
|
@@ -153,10 +153,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
153
153
|
<Insets bottom="5.0" top="5.0" />
|
|
154
154
|
</GridPane.margin>
|
|
155
155
|
</TableView>
|
|
156
|
-
<ComboBox fx:id="cmbCommitMsg" editable="true" maxWidth="1.7976931348623157E308"
|
|
157
|
-
<Button fx:id="butCommit"
|
|
158
|
-
<HBox alignment="CENTER_RIGHT" prefHeight="
|
|
156
|
+
<ComboBox fx:id="cmbCommitMsg" editable="true" maxWidth="1.7976931348623157E308" onKeyPressed="#is_cmbCommit_enter" promptText="Commit message" GridPane.columnSpan="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
|
|
157
|
+
<Button fx:id="butCommit" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#vcs_commit" prefWidth="80.0" text="Commit" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
|
|
158
|
+
<HBox alignment="CENTER_RIGHT" prefHeight="28.0" prefWidth="332.0" GridPane.columnIndex="2">
|
|
159
159
|
<children>
|
|
160
|
+
<TextField fx:id="txtStateFileNmFilter" alignment="CENTER" onKeyPressed="#name_filter_keypressed" promptText="File name filter" HBox.hgrow="ALWAYS">
|
|
161
|
+
<HBox.margin>
|
|
162
|
+
<Insets left="3.0" right="3.0" />
|
|
163
|
+
</HBox.margin>
|
|
164
|
+
</TextField>
|
|
160
165
|
<Button fx:id="butRefreshChanges" alignment="CENTER" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#refresh_vcs_status" prefWidth="80.0" text="Refresh">
|
|
161
166
|
<HBox.margin>
|
|
162
167
|
<Insets />
|
|
@@ -457,7 +462,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
457
462
|
<RowConstraints minHeight="10.0" prefHeight="38.0" vgrow="SOMETIMES" />
|
|
458
463
|
</rowConstraints>
|
|
459
464
|
<children>
|
|
460
|
-
<TitledPane collapsible="false" maxHeight="1.7976931348623157E308"
|
|
465
|
+
<TitledPane collapsible="false" maxHeight="1.7976931348623157E308" text="Configurations" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
|
|
461
466
|
<content>
|
|
462
467
|
<TabPane tabMinWidth="80.0">
|
|
463
468
|
<tabs>
|
data/gvcsfx.gemspec
CHANGED
|
@@ -27,10 +27,12 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.executables = "gvcsfx"
|
|
28
28
|
spec.require_paths = ["lib"]
|
|
29
29
|
|
|
30
|
-
spec.add_dependency 'tlogger'
|
|
31
|
-
spec.add_dependency 'jrubyfx', '
|
|
32
|
-
spec.add_dependency 'toolrack'
|
|
33
|
-
spec.add_dependency 'gvcs'
|
|
34
|
-
spec.add_dependency 'git_cli', '
|
|
30
|
+
spec.add_dependency 'tlogger' #, '>= 0.21'
|
|
31
|
+
spec.add_dependency 'jrubyfx-openjfx.patch', '1.2.0.1'
|
|
32
|
+
spec.add_dependency 'toolrack' #, '>= 0.5.0'
|
|
33
|
+
spec.add_dependency 'gvcs' #, '>= 0.1.0'
|
|
34
|
+
spec.add_dependency 'git_cli', '>= 0.8.0'
|
|
35
|
+
|
|
36
|
+
spec.add_development_dependency 'devops_helper' #, '>= 0.3.1'
|
|
35
37
|
|
|
36
38
|
end
|
data/handlers/tab_state.rb
CHANGED
|
@@ -33,28 +33,33 @@ module GvcsFx
|
|
|
33
33
|
end
|
|
34
34
|
class ModifiedFile < VcsElement
|
|
35
35
|
def initialize(path, ftype)
|
|
36
|
-
super("
|
|
36
|
+
super("Changed",path, ftype)
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
class ConflictedFile < VcsElement
|
|
40
40
|
def initialize(path, ftype)
|
|
41
|
-
super("
|
|
41
|
+
super("Conflicted",path, ftype)
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
class NewFile < VcsElement
|
|
45
45
|
def initialize(path, ftype)
|
|
46
|
-
super("
|
|
46
|
+
super("New",path, ftype)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
class DeletedFile < VcsElement
|
|
50
50
|
def initialize(path, ftype)
|
|
51
|
-
super("
|
|
51
|
+
super("Deleted",path, ftype)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
class StagedFile < VcsElement
|
|
55
|
+
def initialize(path, ftype)
|
|
56
|
+
super("Staged",path, ftype)
|
|
52
57
|
end
|
|
53
58
|
end
|
|
54
59
|
#############
|
|
55
60
|
|
|
56
61
|
def init_tab_state
|
|
57
|
-
@tblChanges.placeholder = javafx.scene.control.Label.new("Changeset is empty. Please select a workspace
|
|
62
|
+
@tblChanges.placeholder = javafx.scene.control.Label.new("Changeset is empty. Please select a workspace, the selected workspace has no changes or changes have been filtered out.")
|
|
58
63
|
|
|
59
64
|
@tblChanges.columns.clear
|
|
60
65
|
@tblChanges.column_resize_policy = javafx.scene.control.TableView::CONSTRAINED_RESIZE_POLICY
|
|
@@ -116,7 +121,11 @@ module GvcsFx
|
|
|
116
121
|
# hooked to but Commit on action
|
|
117
122
|
def vcs_commit(evt)
|
|
118
123
|
sel = @tblChanges.selection_model.selected_items
|
|
119
|
-
|
|
124
|
+
# for editable combobox, value comes AFTER the enter key is pressed.
|
|
125
|
+
# But this might have empty value since it is processed BEFORE enter key is detected
|
|
126
|
+
# by the underlying system
|
|
127
|
+
#msg = @cmbCommitMsg.value
|
|
128
|
+
msg = @cmbCommitMsg.editor.text
|
|
120
129
|
if sel.length == 0
|
|
121
130
|
fx_alert_error "Cannot commit on empty changes selection. Please select at least a file from the table above.", "No Files Selected", main_stage
|
|
122
131
|
elsif (msg.nil? or msg.empty?)
|
|
@@ -140,11 +149,32 @@ module GvcsFx
|
|
|
140
149
|
cst, cflt_dirs, cflt_files = @selWs.conflicted_files
|
|
141
150
|
nst, news_dirs, news_files = @selWs.new_files
|
|
142
151
|
dst, dels_dirs, dels_files = @selWs.deleted_files
|
|
152
|
+
sst, staged_dirs, staged_files = @selWs.staged_files
|
|
153
|
+
|
|
154
|
+
filter = @txtStateFileNmFilter.text
|
|
155
|
+
|
|
156
|
+
if not_empty?(filter)
|
|
157
|
+
mods_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
158
|
+
mods_files.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
159
|
+
|
|
160
|
+
cflt_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
161
|
+
cflt_files.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
162
|
+
|
|
163
|
+
news_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
164
|
+
news_files.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
165
|
+
|
|
166
|
+
dels_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
167
|
+
dels_files.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
168
|
+
|
|
169
|
+
staged_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
170
|
+
staged_files.delete_if { |e| (e =~ /#{filter}/) == nil }
|
|
171
|
+
end
|
|
143
172
|
|
|
144
173
|
data = []
|
|
145
174
|
mods_dirs.each do |f|
|
|
146
175
|
data << ModifiedFile.new(f,:dir)
|
|
147
176
|
end
|
|
177
|
+
|
|
148
178
|
mods_files.each do |f|
|
|
149
179
|
data << ModifiedFile.new(f,:file)
|
|
150
180
|
end
|
|
@@ -162,6 +192,7 @@ module GvcsFx
|
|
|
162
192
|
news_files.each do |f|
|
|
163
193
|
data << NewFile.new(f,:file)
|
|
164
194
|
end
|
|
195
|
+
|
|
165
196
|
dels_dirs.each do |f|
|
|
166
197
|
data << DeletedFile.new(f,:dir)
|
|
167
198
|
end
|
|
@@ -169,6 +200,13 @@ module GvcsFx
|
|
|
169
200
|
data << DeletedFile.new(f,:file)
|
|
170
201
|
end
|
|
171
202
|
|
|
203
|
+
staged_dirs.each do |f|
|
|
204
|
+
data << StagedFile.new(f,:dir)
|
|
205
|
+
end
|
|
206
|
+
staged_files.each do |f|
|
|
207
|
+
data << StagedFile.new(f,:file)
|
|
208
|
+
end
|
|
209
|
+
|
|
172
210
|
bst, currBranch = @selWs.current_branch
|
|
173
211
|
if bst
|
|
174
212
|
@lblCurrBranch.text = currBranch
|
|
@@ -187,6 +225,7 @@ module GvcsFx
|
|
|
187
225
|
refresh_vcs_status(nil)
|
|
188
226
|
@cmbCommitMsg.selection_model.clear_selection
|
|
189
227
|
@cmbCommitMsg.value = nil
|
|
228
|
+
@cmbCommitMsg.editor.text = ""
|
|
190
229
|
end
|
|
191
230
|
|
|
192
231
|
# hooked to on_key_typed
|
|
@@ -196,17 +235,25 @@ module GvcsFx
|
|
|
196
235
|
end
|
|
197
236
|
end
|
|
198
237
|
|
|
238
|
+
def name_filter_keypressed(evt)
|
|
239
|
+
if (not evt.nil?) and evt.code == javafx.scene.input.KeyCode::ENTER
|
|
240
|
+
refresh_tab_state
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
|
|
199
244
|
# hooked to the button "not ready to commit just yet..."
|
|
200
245
|
def stash_changes(evt)
|
|
201
246
|
mst, mods_dirs, mods_files = @selWs.modified_files
|
|
202
247
|
cst, cflt_dirs, cflt_files = @selWs.conflicted_files
|
|
203
248
|
nst, news_dirs, news_files = @selWs.new_files
|
|
204
249
|
dst, dels_dirs, dels_files = @selWs.deleted_files
|
|
250
|
+
sst, staged_dirs, staged_files = @selWs.staged_files
|
|
205
251
|
|
|
206
252
|
if mods_dirs.length > 0 or mods_files.length > 0 \
|
|
207
253
|
or cflt_dirs.length > 0 or cflt_files.length > 0 \
|
|
208
254
|
or news_dirs.length > 0 or news_files.length > 0 \
|
|
209
|
-
or dels_dirs.length > 0 or dels_files.length > 0
|
|
255
|
+
or dels_dirs.length > 0 or dels_files.length > 0 \
|
|
256
|
+
or staged_dirs.length > 0 or staged_files.length > 0
|
|
210
257
|
|
|
211
258
|
msg = []
|
|
212
259
|
msg << "System detected there are existing uncommitted changes in the current workspace:\n"
|
|
@@ -218,6 +265,8 @@ module GvcsFx
|
|
|
218
265
|
msg << "\tDeleted file(s) : \t\t#{dels_files.length}\n"
|
|
219
266
|
msg << "\tNew folder(s) : \t\t#{news_dirs.length}\n"
|
|
220
267
|
msg << "\tNew file(s) : \t\t\t#{news_files.length}\n"
|
|
268
|
+
msg << "\tStaged folder(s) : \t\t#{staged_dirs.length}\n"
|
|
269
|
+
msg << "\tStaged file(s) : \t\t\t#{staged_files.length}\n"
|
|
221
270
|
|
|
222
271
|
st, name = fx_alert_input("Temporary Save Changes To Branch",msg.join, "Please give a descriptive name of this temporary changes.\nIt is recommended but not mandatory")
|
|
223
272
|
if st
|
data/handlers/workspace.rb
CHANGED
|
@@ -47,7 +47,7 @@ module GvcsFx
|
|
|
47
47
|
def value
|
|
48
48
|
self
|
|
49
49
|
end
|
|
50
|
-
end
|
|
50
|
+
end # class TreeWorkspace
|
|
51
51
|
|
|
52
52
|
class WorkspaceCellFactory < javafx.scene.control.TreeTableCell
|
|
53
53
|
include Antrapol::ToolRack::ExceptionUtils
|
|
@@ -69,10 +69,26 @@ module GvcsFx
|
|
|
69
69
|
end
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
#
|
|
73
|
+
# This code was changed from setGraphic(Text.new(cont)) to setText
|
|
74
|
+
# because if using setGraphic it shall corrupt the tree node display
|
|
75
|
+
# on OpenJFX. It is however not an issue for Oracle JFX.
|
|
76
|
+
# Reported and discussion is here:
|
|
77
|
+
# https://stackoverflow.com/q/65084285/3625825
|
|
78
|
+
# Answer is here:
|
|
79
|
+
# https://stackoverflow.com/a/65138569/3625825
|
|
80
|
+
#
|
|
81
|
+
# Checked on the JavaFX bug database found the issue already reported
|
|
82
|
+
# - https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8238991
|
|
83
|
+
# * the issue is marked as Resolved but the comment seems indicate this issue
|
|
84
|
+
# is linked to another Open issue at
|
|
85
|
+
# https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8231644
|
|
86
|
+
# at the time of this writing
|
|
87
|
+
#
|
|
88
|
+
setText(cont)
|
|
89
|
+
|
|
90
|
+
end # updateItem
|
|
91
|
+
end # class WorkspaceCellFactory
|
|
76
92
|
|
|
77
93
|
|
|
78
94
|
LEAF_PROJ_DESC = "Leaf Workspaces (Workspace without bind to a project)"
|
|
@@ -94,7 +110,6 @@ module GvcsFx
|
|
|
94
110
|
col = []
|
|
95
111
|
tcUrl = TreeTableColumn.new("Path")
|
|
96
112
|
tcUrl.cell_value_factory = Proc.new do |e|
|
|
97
|
-
#p e.value.value
|
|
98
113
|
if e.value.value.is_a?(TreeWorkspace)
|
|
99
114
|
e.value.value
|
|
100
115
|
else
|
|
@@ -182,7 +197,7 @@ module GvcsFx
|
|
|
182
197
|
refresh_workspace_list
|
|
183
198
|
|
|
184
199
|
end
|
|
185
|
-
end
|
|
200
|
+
end # Platform.run_later
|
|
186
201
|
end)
|
|
187
202
|
|
|
188
203
|
refresh_workspace_list
|
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gvcsfx
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0
|
|
18
|
+
version: '0'
|
|
19
19
|
name: tlogger
|
|
20
20
|
prerelease: false
|
|
21
21
|
type: :runtime
|
|
@@ -23,63 +23,77 @@ dependencies:
|
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- -
|
|
30
|
+
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 1.2.0
|
|
33
|
-
name: jrubyfx
|
|
32
|
+
version: 1.2.0.1
|
|
33
|
+
name: jrubyfx-openjfx.patch
|
|
34
34
|
prerelease: false
|
|
35
35
|
type: :runtime
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- -
|
|
38
|
+
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.2.0
|
|
40
|
+
version: 1.2.0.1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- - "
|
|
44
|
+
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0
|
|
46
|
+
version: '0'
|
|
47
47
|
name: toolrack
|
|
48
48
|
prerelease: false
|
|
49
49
|
type: :runtime
|
|
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
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
|
-
- - "
|
|
58
|
+
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 0
|
|
60
|
+
version: '0'
|
|
61
61
|
name: gvcs
|
|
62
62
|
prerelease: false
|
|
63
63
|
type: :runtime
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0
|
|
68
|
+
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
|
-
- - "
|
|
72
|
+
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.
|
|
74
|
+
version: 0.8.0
|
|
75
75
|
name: git_cli
|
|
76
76
|
prerelease: false
|
|
77
77
|
type: :runtime
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.8.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
name: devops_helper
|
|
90
|
+
prerelease: false
|
|
91
|
+
type: :development
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0
|
|
96
|
+
version: '0'
|
|
83
97
|
description: Simple and effective VCS workflow management
|
|
84
98
|
email:
|
|
85
99
|
- chrisliaw@antrapol.com
|