gvcsfx 0.4.2 → 0.6.2

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: 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