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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecc25d6eb16fdc872ee27d75c9069ae9d9956d7970b40828c32b7121c81c9e7d
4
- data.tar.gz: 578403f721765e316ffc880bd517aceda7cd76d20444470668b28c6d3fa48fcf
3
+ metadata.gz: 2c0293a49d22f8e09e45605523099695de77f18f59ff8c11a195ebe2dec80683
4
+ data.tar.gz: b65d803bf3387dbddfb6e618acac485c66ab8820105796902da246ba96b5911c
5
5
  SHA512:
6
- metadata.gz: 0b77876fd3020cd65645ee9b0f44ea83ddd0fbdb827e2cd4421a89f590505d90153a3dfbc3f81bd7b9ee68c02c74ab51b256a3322f6338cdeabaa472aec5a274
7
- data.tar.gz: 210e309fecd2fe9b01a8c87621c5fd2469d8b9f46f1391c3f2f421ced0dcfe8e8cf21d14f3cd9262f50e598133cc56e3e98a172243c1407ec7dffb61c571092a
6
+ metadata.gz: 3cc54dc3d0915b7e8658d3022bb24dcdaae4e284a2c1961c6a1ee65603428e754d25bc377e97ff3549a7cd3fac4671c5d5fa2738888efdbcea7b0b39c4c44b6a
7
+ data.tar.gz: 14e0e130bdef794749968ee667122ae35c895e9917a4edbd293f2108555848d167231ac9b0f8a1f94a35a368340a238f1850209d0569bbe94d6157593cb44b52
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ fx/.jrubyfx_cache/
5
5
  gvcsfx.jar
6
6
  gvcsfx-0.3.jar
7
7
  pkg/
8
+ tags
data/Gemfile CHANGED
@@ -16,9 +16,14 @@
16
16
 
17
17
  source "https://rubygems.org"
18
18
 
19
- gem 'tlogger', '~> 0.21'
20
- gem 'jrubyfx'
21
- gem 'toolrack', '~> 0.4'
19
+ gemspec
22
20
 
23
- gem 'gvcs', '~> 0.1'
24
- gem 'git_cli', '~> 0.1'
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
@@ -1,6 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
+ require 'devops_helper'
5
+
4
6
  Rake::TestTask.new(:test) do |t|
5
7
  t.libs << "test"
6
8
  t.libs << "lib"
@@ -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,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', '>= 0.21'
31
- spec.add_dependency 'jrubyfx', '>= 1.2.0'
32
- spec.add_dependency 'toolrack', '~> 0.4'
33
- spec.add_dependency 'gvcs', '~> 0.1.0'
34
- spec.add_dependency 'git_cli', '~> 0.4.0'
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
@@ -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,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
- 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?)
@@ -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
@@ -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.4.2"
20
+ VERSION = "0.6.2"
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.4.2
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-02 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,63 +23,77 @@ 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:
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.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.4.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.4.0
96
+ version: '0'
83
97
  description: Simple and effective VCS workflow management
84
98
  email:
85
99
  - chrisliaw@antrapol.com