gvcsfx 0.5.0 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2903c72b31bb0bcc6321b9faf413f9f0c6148b689a3820f9ba79df92f73db10c
4
- data.tar.gz: 9586da1e2fb9111146e8df737c5e825bcb61d431a7482ec3595862dc12b26bcc
3
+ metadata.gz: 6fe65b991e09562a101dc98c9282022e1107eb55127f6e7cd5fb3674b31012c7
4
+ data.tar.gz: 84c84848bcfe4fb5e2fea75a663cd3ab8510050be4d96cd54163ec95bc518fb9
5
5
  SHA512:
6
- metadata.gz: 3d03858521d9fc7f776590ac910b1e9180e8bc2fe53ee899bc2e378263e93936a8973b37a21a146247f58d756c5251c79ca69eb05efc70b7a8851c6a46bff476
7
- data.tar.gz: ec4575966263e94879e1ddfc7168484e1545d62edeb8b9edf0a4e9f4469f65e38b82b3e80291ea7346b67d955386bf62114d1a613df2a51caa00fbcb4c48c5b0
6
+ metadata.gz: 872d8b7bbc11bc10814aa67f908bf09ff1c50885fdfb641f492a46d7456eead3635f8c797682543fb7f22563b499278b855bed2a160bf67e45a85c010ffe33e0
7
+ data.tar.gz: 309bd8e10222727259f53f9d34469ab53e33929c7f30266578072fcdb4764268a52cf4a897a390336231bb3a58591f9a3634419c0b830a5718d2ad677f850c2f
data/Gemfile CHANGED
@@ -18,6 +18,9 @@ source "https://rubygems.org"
18
18
 
19
19
  gemspec
20
20
 
21
+ #gem 'git_cli', path: '../git/git_cli'
22
+
23
+ #gem 'jrubyfx-openjfx.patch', path: '/mnt/Vault/08.Dev/01.Workspaces/jrubyfx_patches/jrubyfx'
21
24
  #gem 'tlogger', '~> 0.21'
22
25
  #gem 'jrubyfx'
23
26
  #gem 'toolrack', '~> 0.4'
@@ -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="684.0" />
131
- <ColumnConstraints hgrow="SOMETIMES" maxWidth="501.0" minWidth="10.0" prefWidth="209.0" />
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" onKeyTyped="#is_cmbCommit_enter" promptText="Commit message" GridPane.columnSpan="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
157
- <Button fx:id="butCommit" defaultButton="true" 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="100.0" prefWidth="200.0" GridPane.columnIndex="2">
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" minHeight="-Infinity" text="Configurations" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
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>
@@ -27,12 +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', '>= 0.21'
30
+ spec.add_dependency 'tlogger' #, '>= 0.21'
31
31
  spec.add_dependency 'jrubyfx-openjfx.patch', '1.2.0.1'
32
- spec.add_dependency 'toolrack', '~> 0.4'
33
- spec.add_dependency 'gvcs', '~> 0.1.0'
34
- spec.add_dependency 'git_cli', '~> 0.6.0'
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
35
 
36
- spec.add_development_dependency 'devops_helper', '~> 0.1.0'
36
+ spec.add_development_dependency 'devops_helper' #, '>= 0.3.1'
37
37
 
38
38
  end
@@ -33,28 +33,33 @@ module GvcsFx
33
33
  end
34
34
  class ModifiedFile < VcsElement
35
35
  def initialize(path, ftype)
36
- super("M",path, ftype)
36
+ super("Changed",path, ftype)
37
37
  end
38
38
  end
39
39
  class ConflictedFile < VcsElement
40
40
  def initialize(path, ftype)
41
- super("C",path, ftype)
41
+ super("Conflicted",path, ftype)
42
42
  end
43
43
  end
44
44
  class NewFile < VcsElement
45
45
  def initialize(path, ftype)
46
- super("N",path, ftype)
46
+ super("New",path, ftype)
47
47
  end
48
48
  end
49
49
  class DeletedFile < VcsElement
50
50
  def initialize(path, ftype)
51
- super("D",path, ftype)
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 or the selected workspace has no changes ")
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,15 +121,20 @@ 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
- msg = @cmbCommitMsg.value
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?)
123
132
  fx_alert_error "Commit message must be present.", "Empty Commit Message", main_stage
124
133
  else
125
134
  commit_changes(sel, msg)
135
+ # apparently the combobox has its own history
126
136
  if not @msgHistory.include?(msg)
127
- @cmbCommitMsg.items.add(msg)
137
+ #@cmbCommitMsg.items.add(msg)
128
138
  @msgHistory << msg
129
139
  end
130
140
  refresh_tab_state
@@ -140,11 +150,32 @@ module GvcsFx
140
150
  cst, cflt_dirs, cflt_files = @selWs.conflicted_files
141
151
  nst, news_dirs, news_files = @selWs.new_files
142
152
  dst, dels_dirs, dels_files = @selWs.deleted_files
153
+ sst, staged_dirs, staged_files = @selWs.staged_files
154
+
155
+ filter = @txtStateFileNmFilter.text
156
+
157
+ if not_empty?(filter)
158
+ mods_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
159
+ mods_files.delete_if { |e| (e =~ /#{filter}/) == nil }
160
+
161
+ cflt_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
162
+ cflt_files.delete_if { |e| (e =~ /#{filter}/) == nil }
163
+
164
+ news_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
165
+ news_files.delete_if { |e| (e =~ /#{filter}/) == nil }
166
+
167
+ dels_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
168
+ dels_files.delete_if { |e| (e =~ /#{filter}/) == nil }
169
+
170
+ staged_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
171
+ staged_files.delete_if { |e| (e =~ /#{filter}/) == nil }
172
+ end
143
173
 
144
174
  data = []
145
175
  mods_dirs.each do |f|
146
176
  data << ModifiedFile.new(f,:dir)
147
177
  end
178
+
148
179
  mods_files.each do |f|
149
180
  data << ModifiedFile.new(f,:file)
150
181
  end
@@ -162,6 +193,7 @@ module GvcsFx
162
193
  news_files.each do |f|
163
194
  data << NewFile.new(f,:file)
164
195
  end
196
+
165
197
  dels_dirs.each do |f|
166
198
  data << DeletedFile.new(f,:dir)
167
199
  end
@@ -169,6 +201,13 @@ module GvcsFx
169
201
  data << DeletedFile.new(f,:file)
170
202
  end
171
203
 
204
+ staged_dirs.each do |f|
205
+ data << StagedFile.new(f,:dir)
206
+ end
207
+ staged_files.each do |f|
208
+ data << StagedFile.new(f,:file)
209
+ end
210
+
172
211
  bst, currBranch = @selWs.current_branch
173
212
  if bst
174
213
  @lblCurrBranch.text = currBranch
@@ -187,6 +226,7 @@ module GvcsFx
187
226
  refresh_vcs_status(nil)
188
227
  @cmbCommitMsg.selection_model.clear_selection
189
228
  @cmbCommitMsg.value = nil
229
+ @cmbCommitMsg.editor.text = ""
190
230
  end
191
231
 
192
232
  # hooked to on_key_typed
@@ -196,17 +236,25 @@ module GvcsFx
196
236
  end
197
237
  end
198
238
 
239
+ def name_filter_keypressed(evt)
240
+ if (not evt.nil?) and evt.code == javafx.scene.input.KeyCode::ENTER
241
+ refresh_tab_state
242
+ end
243
+ end
244
+
199
245
  # hooked to the button "not ready to commit just yet..."
200
246
  def stash_changes(evt)
201
247
  mst, mods_dirs, mods_files = @selWs.modified_files
202
248
  cst, cflt_dirs, cflt_files = @selWs.conflicted_files
203
249
  nst, news_dirs, news_files = @selWs.new_files
204
250
  dst, dels_dirs, dels_files = @selWs.deleted_files
251
+ sst, staged_dirs, staged_files = @selWs.staged_files
205
252
 
206
253
  if mods_dirs.length > 0 or mods_files.length > 0 \
207
254
  or cflt_dirs.length > 0 or cflt_files.length > 0 \
208
255
  or news_dirs.length > 0 or news_files.length > 0 \
209
- or dels_dirs.length > 0 or dels_files.length > 0
256
+ or dels_dirs.length > 0 or dels_files.length > 0 \
257
+ or staged_dirs.length > 0 or staged_files.length > 0
210
258
 
211
259
  msg = []
212
260
  msg << "System detected there are existing uncommitted changes in the current workspace:\n"
@@ -218,6 +266,8 @@ module GvcsFx
218
266
  msg << "\tDeleted file(s) : \t\t#{dels_files.length}\n"
219
267
  msg << "\tNew folder(s) : \t\t#{news_dirs.length}\n"
220
268
  msg << "\tNew file(s) : \t\t\t#{news_files.length}\n"
269
+ msg << "\tStaged folder(s) : \t\t#{staged_dirs.length}\n"
270
+ msg << "\tStaged file(s) : \t\t\t#{staged_files.length}\n"
221
271
 
222
272
  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
273
  if st
@@ -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
- setGraphic(Text.new(cont))
73
-
74
- end
75
- end
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
@@ -17,5 +17,5 @@
17
17
 
18
18
 
19
19
  module GvcsFx
20
- VERSION = "0.5.0"
20
+ VERSION = "0.6.3"
21
21
  end
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.5.0
4
+ version: 0.6.3
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-25 00:00:00.000000000 Z
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.21'
18
+ version: '0'
19
19
  name: tlogger
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,7 +23,7 @@ dependencies:
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.21'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -41,59 +41,59 @@ dependencies:
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.4'
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.4'
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.1.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.1.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.6.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
81
  - !ruby/object:Gem::Version
82
- version: 0.6.0
82
+ version: 0.8.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: 0.1.0
88
+ version: '0'
89
89
  name: devops_helper
90
90
  prerelease: false
91
91
  type: :development
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.1.0
96
+ version: '0'
97
97
  description: Simple and effective VCS workflow management
98
98
  email:
99
99
  - chrisliaw@antrapol.com